我想对不属于同一组的行的值进行求和。例如,使用以下示例数据:
> df <- data.frame(id=1:5, group=c("A", "A", "B", "B", "A"), val=seq(9, 1, -2))
> df
id group val
1 1 A 9
2 2 A 7
3 3 B 5
4 4 B 3
5 5 A 1
使用dplyr
按组进行汇总
> df %>% group_by(group) %>% summarize(sumval = sum(val))
Source: local data frame [2 x 2]
group sumval
(fctr) (dbl)
1 A 17
2 B 8
我想得到属于A组的行所使用的非A组
sumval
的值。即最终结果为: id group val notval
1 1 A 9 8
2 2 A 7 8
3 3 B 5 17
4 4 B 3 17
5 5 A 1 8
有没有在dplyr
中完成这个操作的方法?最好是在单一链中实现?
TotalSum
,即df%>% 按组分组%>% mutate(notval = sum(df%>% val)- sum(val))
。 - akrun