在R中,如何通过另一个数据框的列名删除数据框中的行?

时间:2016-06-08 20:48:20

标签: r dataframe subset

我有一个包含数据超过200列的数据帧(df1)(每行数千行)。列名是字母数字,并且彼此不同。

我有第二个数据集(df2),其中有几列,其中第一列(名为' col1')包含带有"值"的行。携带df1的colnames。

但是对于df2中的每一行都没有。我在df1中有一个相应的列。

现在我想删除(删除)df2中没有"对应"的所有行。 df1中的列。

我使用关键字来搜索很长一段时间,例如"子集data.frame,来自另一个data.frame"但没有找到任何解决方案。我查了一下,例如hereherehere以及其他一些地方。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

数据:

df1 <- data.frame(a = 1:3, b = 1:3)
#   a b
# 1 1 1
# 2 2 2
# 3 3 3

df2 <- data.frame(col1 = c("a", "c"))
#   col1
# 1    a
# 2    c

保留df2中的值,其值为df1中的名称:

subset(df2, col1 %in% names(df1))
#   col1
# 1    a