从数据框中提取至少具有截止​​值以上三个值的列

时间:2019-01-29 21:47:51

标签: r

我是R编程新手。需要帮助来过滤我的数据。例如,我的数据集是mtcars。我想提取至少具有18以上的三个值的列。我该怎么做。谢谢

我已经使用了排序功能,但这仅适用于一列。而不是整个数据帧。

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码获取列的名称:

library(dplyr)
library(tidyr)

columns = mtcars %>% gather() %>% filter(value > 18) %>% count(key) %>% filter(n > 3) %>% 
select(key)

然后使用以下数据过滤数据框:

mtcars[, c(t(columns))]

gather将数据框转换为具有两列的数据框:

  • 键是列的名称
  • value是观察值对列的取值

将过滤掉大于18的值,并通过key(列的名称)对观察值进行计数。