我可以在summarise_all中应用过滤器吗?

时间:2019-07-29 06:12:30

标签: r dataframe dplyr

我正在为我的数据框汇总。我的数据框如下所示:

A   B   C   D   E   F

1   1   1   1   4   2
2   2   5   6   9   9
3   1   7   1   2   4
4   9   6   5   6   6
5   4   7   9   1   5
6   9   9   7   5   7
7   6   1   6   7   8
8   8   3   4   3   6
9   9   4   6   1   1

我想根据链接类型对每一列进行总结。我可以将其与代码一起使用:

df>-datafram%>%
summaries_all(sum,na.rm=TRUE)

输出为:

A   B   C   D   E   F

45  49  43  45  38  48

但是当我使用过滤器时

summaries_all(sum(B<9),na.rm=TRUE),

R说:

Error in is_fun_list(.funs) : object 'B' not found

我希望对我的summaries_all应用过滤器,以便仅对b <9

的所有数字求和

请给我一些提示

非常感谢

1 个答案:

答案 0 :(得分:1)

我们可以创建一个带有'B'的逻辑表达式来对每列的值进行子集化,然后执行sum

library(dplyr)
datafram %>% 
   summarise_at(vars(-B), ~ sum(.[B < 9], na.rm = TRUE))
#   A  C  D  E  F
#1 26 24 27 26 34