【发布时间】:2019-03-06 15:40:51
【问题描述】:
我有一张如下所示的表格:
ID YEAR SOURCE VALUE
1 2014 AV 15
1 2014 OV 25
1 2015 AV 87
2 2014 AX 44
2 2015 AZ 32
2 2015 NL 2
3 2011 OV 104
我想重新构建表格以提供一个新列,其中汇总了源 AV、AX 和 NL 提供的 VALUE,以及另一个新列,其中给出了来自 OV 的值。例如,上面的代码如下所示:
ID YEAR AV+AX+NL OV
1 2014 15 25
1 2015 87 NA
2 2014 44 NA
2 2015 32 NA
3 2011 NA 104
我想在 R 中执行此操作,但如果更简单,可以使用 SQL。到目前为止,我一直在尝试结合 tidyverse 中的“summarise”和“mutate”命令来创建我的新列,但我无法找到一种方法来仅对某些 SOURCE 值而不是所有值求和。
非常感谢任何帮助
【问题讨论】:
-
试试
library(dplyr);df1 %>% group_by(ID, YEAR) %>% summarise(AV_AX_NL = sum(VALUE[SOURCE %in% c("AV", "AX", "NL")]), OV = sum(VALUE[SOURCE == "OV"])) -
SOURCE == "AZ" 的记录呢?
标签: r sql-server dplyr