r - 如何基于过滤R中的所有其他变量返回一列的所有唯一值
问题描述
我有一个包含变量group
和X1:X1000
. 对于每一列,X1:X1000
我只想过滤具有0
值的行,然后返回group
过滤数据集中变量的唯一值。如果是单列,它将类似于:
df %>% filter(X1 == 0) %>% select(group) %>% unique()
由于我希望每一列都有这个,我认为也许map
可以以某种方式使用它来返回group
相对于 columns的唯一值列表X1:X1000
,但无法弄清楚调用应该是什么样子。
解决方案
我们可以使用map
循环列名filter_at
的字符串,指定字符串名称,过滤行,select
“组”并获取distinct
元素
library(tidyverse)
map(paste0("X", 1:1000), ~
df %>%
filter_at(vars(.x), all_vars(.==0)) %>%
select(group) %>%
distinct
)
或者代替filter_at
,可以将字符串转换为符号 ( sym
) 并在内部计算 ( !!
)filter
map(paste0("X", 1:1000), ~
df %>%
filter(!! (rlang::sym(.x)) ==0) %>%
select(group) %>%
distinct
)
推荐阅读
- php - Google is not allowing the scope mail.google.com using OAuth php library
- npm - 如何使用 Webpack 为 Babel 包含节点模块
- asp.net-core - 如何在.net core 中注册使用角色?
- android - 为什么 currentTimeMillis() 重置为 1970
- excel - 在excel中使用代码VBA的方式有多快
- javascript - 检查整数是否为大值
- c - 损坏的堆错误 c
- python - Python3 与 Windows 共享文件夹
- c# - DateTime.Now 在同一台机器上给出不同的格式
- python - Python:使用 for 循环的玩家输入?