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@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.

Reply via email to