2017-10-10 69 views
0

给出这个数据帧,其内容(作为一个例子,真正的一个拥有超过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

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

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

    column_three column_four 
1   3   3 
2   4   4 
1

从@ AndrewGustar的回答继,这里是一个使用dplyr等效的解决方案:

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

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

都整齐和工作。谢谢安德鲁马克 – Forge

相关问题