如何在R中按Date对两个不等长数据集的value求和?
按Date字段合并两个数据集并对value求和
问题描述
现有两个变量一致但长度不同的数据集,需按Date字段对两个数据集的value变量求和。
原始数据集
数据集1
| Date | value |
|---|---|
| 1/1/2000 | 1 |
| 2/1/2000 | 1 |
| 3/1/2000 | 2 |
| 4/1/2000 | 3 |
| 5/1/2000 | 4 |
| 6/1/2000 | 5 |
| 7/1/2000 | 2 |
数据集2
| Date | value |
|---|---|
| 2/1/2000 | 5 |
| 3/1/2000 | 7 |
| 5/1/2000 | 2 |
| 7/1/2000 | 9 |
预期结果
| Date | value |
|---|---|
| 1/1/2000 | 1 |
| 2/1/2000 | 6 |
| 3/1/2000 | 9 |
| 4/1/2000 | 3 |
| 5/1/2000 | 6 |
| 6/1/2000 | 5 |
| 7/1/2000 | 11 |
解决方案
我习惯用rbind合并两个数据框,再通过group_by和summarise对value求和,代码如下:
# 两个数据集分别命名为'a'和'b' library(tidyverse) # 合并数据集 a <- do.call(rbind, list(a, b)) # 按Date分组并求和 a %>% group_by(Date) %>% summarise(value = sum(value))
内容的提问来源于stack exchange,提问作者doraemon
相关产品推荐
相关产品推荐

