2017-10-10 44 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

相關問題