我有一个数据框:
Date area sales
1 201204 shanghai 23
2 201204 beijing 25
3 201204 beijing 16
4 201205 shanghai 55
5 201205 beijing 17
6 201205 shanghai 16
我要输出的内容如下表所示:
Date shanghai beijing
201204 23 41
201205 71 17
我如何在R中执行此操作?谢谢!
答案 0 :(得分:0)
两个选项,一个是基函数aggregate
,另一个是plyr的ddply
。我编制了自己的数据,因为你的数据不可复制,但你应该能够明白这一点:
dat <- data.frame(x1 = sample(letters[1:3], 100, TRUE),
x2 = sample(letters[6:3], 100, TRUE),
value = rnorm(100))
aggregate(value ~ x1 + x2, data = dat, FUN = 'sum')
library(plyr)
ddply(dat, .(x1,x2), summarize, foo = sum(value))