我有一个包含变量group
和X1:X1000
的数据集。对于X1:X1000
列中的每个列,我只想用0
值过滤行,然后在过滤后的数据集中返回group
变量的唯一值。如果是单列,则类似于:
df %>% filter(X1 == 0) %>% select(group) %>% unique()
由于我希望每个列都这样,所以我认为也许可以使用map
返回有关列group
的{{1}}唯一值的列表,但是不能弄清楚通话的外观。
答案 0 :(得分:1)
我们可以使用map
遍历列名字符串,使用filter_at
,指定字符串名,过滤行,select
'group'并获得{ {1}}个元素
distinct
或者代替library(tidyverse)
map(paste0("X", 1:1000), ~
df %>%
filter_at(vars(.x), all_vars(.==0)) %>%
select(group) %>%
distinct
)
,也可以在filter_at
内将字符串转换为符号(sym
)并求值(!!
)
filter