选择内容具有字符串的列(不是名称而是内容)

时间:2017-10-10 10:16:55

标签: r

给出这个数据框(作为一个例子,真正的数据框有超过100列):

df <- data.frame(column_one = 1:2,
                 column_two = 1:2,
                 column_three= 3:4,
                 column_four= 3:4)

我想要一个包含数字4的列的新数据框:

column_three  column_four
3              3
4              4

我在SO上可以找到的是如何选择包含给定字符串的列名,但这不是我的情况。列名不是我的问题。

考虑到我无法在有关列数的代码上逐一检查每一列。

2 个答案:

答案 0 :(得分:2)

你可以这样做......

df[,sapply(df,function(x) 4 %in% x)]

  column_three column_four
1            3           3
2            4           4

答案 1 :(得分:1)

继@ AndrewGustar的回答之后,这是使用dplyr的等效解决方案:

library(dplyr)
select_if(df, function(x) 4 %in% x)

#>   column_three column_four
#> 1            3           3
#> 2            4           4