R 两变量求和

R 两变量求和,r,sum,R,Sum,我有一个数据帧: 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 201

我有一个数据帧:

       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里我该怎么做呢?

这是重塑2::dcast的炮灰

library(reshape2)
# assuming your data is called `D`
dcast(Date~area, value.var = 'sales', fun.aggregate = sum, data = D)
在基数R中(对于
sum
),有
xtab

> xtabs(sales ~ Date + area, mydf)
        area
Date     beijing shanghai
  201204      41       23
  201205      17       71
要将其作为
data.frame
获取,请将其包装为
as.data.frame.matrix


要使用目前流行的方法更新此内容,还可以使用“dplyr”(用于聚合)和“tidyr”(用于重塑)的组合,如下所示:

library(tidyr)
library(dplyr)
mydf %>% 
  group_by(Date, area) %>% 
  summarise(sales = sum(sales)) %>% 
  spread(area, sales)
# Source: local data frame [2 x 3]
# 
#     Date beijing shanghai
# 1 201204      41       23
# 2 201205      17       71

这不是一个好问题。请参阅和。我查找了聚合函数。但我相信有一种方法可以使这更容易。现在我得到了答案,谢谢!