On May 22, 2011, at 5:25 PM, Gang Chen wrote:

I know how to convert a simple dataframe from wide to long format with one varying factor. However, for a dataset with two factors like the following,

Subj T1_Cond1 T1_Cond2 T2_Cond1 T2_Cond2
1   0.125869   4.108232   1.099392   5.556614
2   1.427940   2.170026   0.120748   1.176353

How to elegantly convert to a long form as

Subj  Time Cond  Value
1         1        1       0.125869
1         1        2       4.108232
1         2        1       1.099392

Assume this is a dataframe named 'tst'

require(reshape2)
ltest <- melt(tst, id.vars =1)

dcast(ltest,  ubj+substr(variable, 1,2) + substr(variable, 4,8) ~. )
  ubj substr(variable, 1, 2) substr(variable, 4, 8)       NA
1   1                     T1                  Cond1 0.125869
2   1                     T1                  Cond2 4.108232
3   1                     T2                  Cond1 1.099392
4   1                     T2                  Cond2 5.556614
5   2                     T1                  Cond1 1.427940
6   2                     T1                  Cond2 2.170026
7   2                     T2                  Cond1 0.120748
8   2                     T2                  Cond2 1.176353

dcast(ltest,  ubj+substr(variable, 1,2) ~ substr(variable, 4,8) )

  ubj substr(variable, 1, 2)    Cond1    Cond2
1   1                     T1 0.125869 4.108232
2   1                     T2 1.099392 5.556614
3   2                     T1 1.427940 2.170026
4   2                     T2 0.120748 1.176353

The modifications to get it exactly as requested are left to the reader
...

Thanks in advance!

Gang

        [[alternative HTML version deleted]]

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

David Winsemius, MD
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