Re: [R] How to substract a valur from dataframe with condition

From: David Winsemius <dwinsemius_at_comcast.net>
Date: Mon, 21 Mar 2011 20:03:10 -0400

On Mar 21, 2011, at 5:39 PM, joe82 wrote:

> Hello All,
>
> I need help with my dataframe, it is big but here I am using a small
> table
> as an example.
>
> My dataframe df looks like:
> X1 X2 X3
> 1 2011-02 0.00 96.00
> 2 2011-02 0.00 2.11
> 3 2011-02 2.00 3.08
> 4 2011-02 0.06 2.79
> 5 2011-02 0.00 96.00
> 6 2011-02 0.00 97.00
> 7 2011-02 0.08 2.23
>
> I want values in columns X2 and X3 to be checked if they are greater
> than
> 50, if yes, then subtract from '100'
>
> df should look like:
>
> X1 X2 X3
> 1 2011-02 0.00 4.00
> 2 2011-02 0.00 2.11
> 3 2011-02 2.00 3.08
> 4 2011-02 0.06 2.79
> 5 2011-02 0.00 4.00
> 6 2011-02 0.00 3.00
> 7 2011-02 0.08 2.23

df[ , 2:3] <- apply(df[ , 2:3], 2,

                  function(x) ifelse(x >50, 100-x, x) )

OR:

df[ , 2:3] <- sapply(df[ , 2:3],

                  function(x) ifelse(x >50, 100-x, x) )

(or lapply would work as well)

OR;

df$X2[df$X2 >50] <- 100 - df$X2[df$X2 >50] df$X1[df$X1 >50] <- 100 - df$X1[df$X1 >50]

-- 
David Winsemius, MD
Heritage Laboratories
West Hartford, CT

______________________________________________
R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Tue 22 Mar 2011 - 00:15:01 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 22 Mar 2011 - 02:00:25 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive