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