[R] Best way to compute the difference between two levels of a factor ?
wphantomfr
wphantomfr at gmail.com
Wed Mar 21 09:48:45 CET 2012
Dear R-help Members,
I am wondering if anyone think of the optimal way of computing for
several numeric variable the difference between 2 levels of a factor.
To be clear let's generate a simple data frame with 2 numeric variables
collected for different subjects (ID) and 2 levels of a TIME factor
(time of evaluation)
data=data.frame(ID=c("AA","AA","BB","BB","CC","CC"),TIME=c("T1","T2","T1","T2","T1","T2"),X=rnorm(6,10,2.3),Y=rnorm(6,12,1.9))
ID TIME X Y
1 AA T1 9.959540 11.140529
2 AA T2 12.949522 9.896559
3 BB T1 9.039486 13.469104
4 BB T2 10.056392 14.632169
5 CC T1 8.706590 14.939197
6 CC T2 10.799296 10.747609
I want to compute for each subject and each variable (X, Y, ...) the
difference between T2 and T1.
Until today I do it by reshaping my dataframe to the wide format (the
columns are then ID, X.T1, X.T2, Y.T1,Y.T2) and then compute the
difference between successive columns one by one :
data$Xdiff=data$X.T2-data$X.T1
data$Ydiff=data$Y.T2-data$Y.T1
...
but this way is probably not optimal if the difference has to be
computed for a large number of variables.
How will you handle it ?
Thanks in advance
Sylvain Clément
More information about the R-help
mailing list