r - dplyr:同时按名称和值选择

标签 r select dplyr

(这个问题可能是重复的,但我还找不到有人问它......)

使用 dplyr 技术,如何同时通过名称和值从 data.frame 中选择列?例如以下(不起作用):

> data.frame(x=4, y=6, z=3) %>%
    select_if(matches('x') | mean(.) > 5)
Error: No tidyselect variables were registered

在基础 R 中,我会做这样的事情:

> df <- data.frame(x=4, y=6, z=3)
> df[names(df) == 'x' | colMeans(df) > 5]
  x y
1 4 6

最佳答案

更新:使用dplyr v1.0.0:

data.frame(x=4, y=6, z=3) %>%
      select(matches("x"), where(~mean(.) > 5))

原始答案: 您可以使用带有逗号的 selectcolMeans

data.frame(x=4, y=6, z=3) %>%
  select(matches("x"), which(colMeans(.) > 5))
  x y
1 4 6

关于r - dplyr:同时按名称和值选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55595422/

相关文章:

r - 基于共享标识符将两个数据帧的值相乘

r - 将稀疏矩阵写入 R 中的 CSV

java - 从 Oracle 数据库中的数百万行中选择的最佳方法

mysql - 如何在没有公共(public) "GROUP BY"元素的情况下合并 2 个查询的结果

r - 捕获验证码图像

mysql - 通过分组依据和限制选择n个数据

r - dplyr 字符串作为列引用

r - 来自两列数据帧的简单网络/集群成员资格

r - 如何将 dplyr 与参数向量一起使用

r - 在 R 中跳过 travis 上的特定测试文件