我有一个火花数据框(在R和sparklyr的上下文中)有三列,id,x和y。如果我想按列汇总,我可以用
来完成df <- df %>% group_by(id) %>% summarize(x=sum(x),y=sum(y))
现在假设我现在收到一个列数可变的数据框。除了id之外,所有其他列都是双打的,我需要像以前一样对它们进行总结。当然我可以得到列名,迭代总结每个列并加入结果,但它看起来很难看。有一个简单的方法吗?
答案 0 :(得分:2)
您可以尝试dplyr::summarise_all
。 summarise_all
将在所有列上应用所需的功能,但group_by
中使用的除外。
library(dplyr)
df %>% group_by(id) %>% summarise_all(sum)
答案 1 :(得分:2)
summarise_if
会有效吗?
df <- df %>% group_by(id) %>% summarise_if(is.numeric, sum, na.rm = TRUE)