给出这个数据框(作为一个例子,真正的数据框有超过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上可以找到的是如何选择包含给定字符串的列名,但这不是我的情况。列名不是我的问题。
考虑到我无法在有关列数的代码上逐一检查每一列。
答案 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