R Reshape Cast with Asymmetric Function -
how reshape data using cast
asymmetric function? have data
>t b c 1 1 1 30 2 1 2 25 3 2 1 59 4 2 2 1 5 3 1 12 6 3 2 97 7 4 1 66 8 4 2 43 9 5 1 13 10 5 2 32
for each level x
of a
i'd difference
t[t$a==x & t$b==2, 'c'] - t[t$a==x & t$b==1, 'c']
if wanted sum, it'd easy: cast(t, ~ ., fun.aggregate=sum, value = 'c')
. since difference asymmetric, don't know ensure b==1
value subtracted b==2
value , not vice versa.
thanks!
you can use diff
function:
library(reshape) t2 <- t[order(t$b), ] # make sure '1' comes before '2' cast(t2, ~ ., fun.aggregate = diff, value = 'c') (all) 1 1 -5 2 2 -58 3 3 85 4 4 -23 5 5 19
Comments
Post a Comment