这样做的正确方法是什么?我正在尝试获取特定列的每个组的colSums
。此类子集的.
语法似乎不正确。
csv<-data.frame(id_num=c(1,1,1,2,2),c(1,2,3,4,5),c(1,2,3,3,3))
temp<-csv%>%group_by(id_num)%>%colSums(.[,2:3],na.rm=T)
答案 0 :(得分:2)
这可以通过summarise_each
完成,或者在最近的版本中引入了其他功能,例如summarise_at
,summarise_if
,以方便使用。
csv %>%
group_by(id_num) %>%
summarise_each(funs(sum))
csv %>%
group_by(id_num) %>%
summarise_at(2:3, sum)
如果我们使用的是列名,请在vars
summarise_at
一起打包
csv %>%
group_by(id_num) %>%
summarise_at(names(csv)[-1], sum)
注意:在OP的数据集中,未指定第2列和第3列的列名称,导致类似c.1..2..3..4..5.
使用vars
在所选列名称上应用该功能
csv %>%
group_by(id_num) %>%
summarise_at(vars(c.1..2..3..4..5.), sum)
# # A tibble: 2 × 2
# id_num c.1..2..3..4..5.
# <dbl> <dbl>
#1 1 6
#2 2 9