2014-02-07 95 views
0

我有兩個不同長度的數據幀。 On是樣品,另一個是測試樣品刪除數據幀中與另一個不相同的列(R)

df1 a b c d ... 
    1 0 0 0 
    2 0 0 1 

df2 a e b c d ... 
    1 1 0 0 0 
    2 0 0 0 1 

如何刪除與df1不同的df2的列? 因此,我正在尋找與df1(a,b,c,d ...)相同的列的df2。 我試過合併(),但它不是我要找的東西。

回答

2

如果我正確理解你的問題,你可以通過這樣的列名子集:

df2[, colnames(df1)] 

如果您在DF1列名DF2中不存在,你可以做

df2[, intersect(colnames(df1), colnames(df2))] 

編輯:忘了逗號

+0

+1,請注意,由於'data.frame'繼承自list,因此您可以使用'names'而不是'colnames'來保存三個按鍵!你甚至可以通過'df2 [names(df1)]'保存另外兩個,儘管我可能不會推薦最後一個。 – BrodieG

相關問題