gpt4 book ai didi

r - 如何在dplyr过滤器函数中使用列号

转载 作者:行者123 更新时间:2023-12-01 13:13:05 25 4
gpt4 key购买 nike

我如何使用 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) 和行,列号由外部算法提供。

最佳答案

使用 filter_atall_vars

library(dplyr)
df %>% filter_at(c(1,3,4), all_vars(.==0))

C001 C007 C008 C020
1 0 0 0 0
2 0 0 0 0

关于r - 如何在dplyr过滤器函数中使用列号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58795821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com