【发布时间】:2020-03-06 19:31:35
【问题描述】:
如何将dplyr::filter() 函数与列号而不是列名一起使用?
例如,我想选择外部选择的列并返回全为零的行。例如,对于这样的数据框
> test
# A tibble: 10 x 4
C001 C007 C008 C020
<dbl> <dbl> <dbl> <dbl>
1 -1 -1 0 0
2 0 0 0 0
3 1 1 0 0
4 -1 -1 0 0
5 0 0 0 -1
6 0 0 0 1
7 0 1 1 0
8 0 0 -1 -1
9 1 1 0 0
10 0 0 0 0
还有一个向量 S = c(1,3,4) 我如何在 test 中选择 all(x==0) 中的所有行?我可以使用test[apply(test[,S] 1, function(x){all(x==0)},] 来做到这一点,但我想将其用作%>% 管道的一部分。
我无法弄清楚filter() 语法使用列号而不是名称。真实数据有更多的列 (>100) 和行,列号由外部算法提供。
【问题讨论】:
标签: r filter syntax dplyr tidyverse