-4

我有一个数据框:

    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 中做到这一点?谢谢!

4

1 回答 1

1

两个选项,一个带有 base function aggregate,另一个带有 plyr's 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))
于 2013-08-16T03:46:29.970 回答