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

在R中,如何通过另一个数据帧的列名删除数据帧中的行?,r,dataframe,subset,R,Dataframe,Subset,我有一个数据帧(df1),其中包含200多列数据(每列数千行)。列名是字母数字的,并且彼此不同 我有第二个数据集(df2),其中有两列,第一列(名为“col1”)包含带有“value”的行,其中包含df1的colnames 但并非对于df2中的每一行,我在df1中都有一个对应的列 现在我想删除(删除)df2中所有在df1中没有“对应”列的行 我使用诸如“subset data.frame by values from other data.frame”之类的关键字搜索了很久,但没有找到任何解决方

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

我有第二个数据集(df2),其中有两列,第一列(名为“col1”)包含带有“value”的行,其中包含df1的colnames

但并非对于df2中的每一行,我在df1中都有一个对应的列

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

我使用诸如“subset data.frame by values from other data.frame”之类的关键字搜索了很久,但没有找到任何解决方案。我查了一下,比如说,或者其他一些地方

感谢您的帮助。

数据:

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

您能否创建一个可复制的小示例?-使用内置数据,或模拟数据,或使用
dput()
重复共享。但您可能需要的是
df2[df2$col1%在%names(df1)中]
df1
是一个数据帧似乎一点都不重要,唯一重要的是你有一个你想要保留的值的特征向量,而这恰好是
names(df1)
。多亏了@Gregor和Effel。你成功了!
subset(df2, col1 %in% names(df1))
#   col1
# 1    a