R sum和+之间的不同输出;
我正在处理一个问题,它基本上包括根据ID对所有行求和,并对一些特定变量求和,以获得一个整合的数据集,以便在另一项工作中输入,但sum函数存在一个问题,我希望对此进行一些解释 数据集:R sum和+之间的不同输出;,r,dplyr,R,Dplyr,我正在处理一个问题,它基本上包括根据ID对所有行求和,并对一些特定变量求和,以获得一个整合的数据集,以便在另一项工作中输入,但sum函数存在一个问题,我希望对此进行一些解释 数据集: teste <- data.frame(ID = c(1, 1, 2, 1, 3, 3, 2), VALUE = c(10, 10, 10, 10, 10, 10, 10), MOD = c(1, 1, 1, 1, 1, 1, 1
teste <- data.frame(ID = c(1, 1, 2, 1, 3, 3, 2),
VALUE = c(10, 10, 10, 10, 10, 10, 10),
MOD = c(1, 1, 1, 1, 1, 1, 1))
ID VALUE MOD
1 1 10 1
2 1 10 1
3 2 10 1
4 1 10 1
5 3 10 1
6 3 10 1
7 2 10 1
teste%
分组依据(ID)%>%
汇总所有数据(总和,na.rm=TRUE)%>%
变异(CONS=VALUE+MOD)
#一个tibble:3x4
ID值MOD CONS
1 1 30 3 33
2 2 20 2 22
3 3 20 2 22
使用和函数:
teste %>%
group_by(ID) %>%
summarise_all(sum, na.rm = TRUE) %>%
mutate(CONS = sum(VALUE, MOD))
# A tibble: 3 x 4
ID VALUE MOD CONS
<dbl> <dbl> <dbl> <dbl>
1 1 30 3 77
2 2 20 2 77
3 3 20 2 77
teste%>%
分组依据(ID)%>%
汇总所有数据(总和,na.rm=TRUE)%>%
变异(CONS=总和(值,MOD))
#一个tibble:3x4
ID值MOD CONS
1 1 30 3 77
2 2 20 2 77
3 3 20 2 77
总结所有内容
因此将其重新分组:
teste %>%
group_by(ID) %>%
summarise_all(sum, na.rm = TRUE) %>%
group_by(ID) %>% # <--------------------------
mutate(CONS = sum(VALUE, MOD)) %>%
ungroup
teste%>%
分组依据(ID)%>%
汇总所有数据(总和,na.rm=TRUE)%>%
分组依据(ID)%>%\
解组
给予:
# A tibble: 3 x 4
# Groups: ID [3]
ID VALUE MOD CONS
<dbl> <dbl> <dbl> <dbl>
1 1 30 3 33
2 2 20 2 22
3 3 20 2 22
#一个tible:3 x 4
#组别:ID[3]
ID值MOD CONS
1 1 30 3 33
2 2 20 2 22
3 3 20 2 22
sum(VALUE,MOD)
是计算VALUE
和MOD
组合的总和,即(30,20,20)+(3,2,2),但我的意图是对这些变量求和,我只是没想到sum和+会有不同的方法,我不知道为什么会发生。我仍然不明白,sum不应该执行一批+操作吗?谢谢您的回答。sum
对其所有参数中的所有元素求和,并返回标量结果。例如,使用内置的BOD
尝试sum(BOD)
和sum(BOD,BOD)
# A tibble: 3 x 4
# Groups: ID [3]
ID VALUE MOD CONS
<dbl> <dbl> <dbl> <dbl>
1 1 30 3 33
2 2 20 2 22
3 3 20 2 22