简体   繁体   中英

How to use “cast” in reshape without aggregation

In many uses of cast I've seen, an aggregation function such as mean is used.

How about if you simply want to reshape without information loss. For example, if I want to take this long format:

ID     condition    Value
John   a            2
John   a            3
John   b            4
John   b            5
John   a            6
John   a            2
John   b            1
John   b            4

To this wide-format without any aggregation:

ID    a  b
John  2  4
John  3  5
Alex  6  1
Alex  2  4

I suppose that this is assuming that observations are paired and you were missing value would mess this up but any insight is appreciated

In such cases you can add a sequence number:

library(reshape2)

DF$seq <- with(DF, ave(Value, ID, condition, FUN = seq_along))
dcast(ID + seq ~ condition, data = DF, value.var = "Value")

The last line gives:

    ID seq a b
1 John   1 2 4
2 John   2 3 5
3 John   3 6 1
4 John   4 2 4

(Note that we used the sample input from the question but the sample output in the question does not correspond to the sample input.)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM