Reputation: 738
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
Upvotes: 6
Views: 4231
Reputation: 269461
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.)
Upvotes: 9