2014-02-07 120 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

相关问题