在R中,如何通过另一个数据帧的列名删除数据帧中的行?
我有一个数据帧(df1),其中包含200多列数据(每列数千行)。列名是字母数字的,并且彼此不同 我有第二个数据集(df2),其中有两列,第一列(名为“col1”)包含带有“value”的行,其中包含df1的colnames 但并非对于df2中的每一行,我在df1中都有一个对应的列 现在我想删除(删除)df2中所有在df1中没有“对应”列的行 我使用诸如“subset data.frame by values from other data.frame”之类的关键字搜索了很久,但没有找到任何解决方案。我查了一下,比如说,或者其他一些地方 感谢您的帮助。数据:在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 <- 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