在R中,如何通过标识符从第二个数据帧中选择一个数据帧中的条目行

在R中,如何通过标识符从第二个数据帧中选择一个数据帧中的条目行,r,R,可能重复: 我有两个数据帧。第一个(df1)是一列100个条目,标题为“名称”。第二个(df2)是一个数据帧,包含数以万计条目的数百列元数据。df2的第一列也有标题“names” 我只想通过在df1中找到的名称子集来选择df2中的所有元数据 请帮助这名新手R用户。谢谢大家! 可以将data.frame与%in%一起使用,但如果要查找数千个名称,则速度可能会很慢 我建议使用data.table,因为它可以对索引列进行排序,甚至可以对数百万条记录进行几乎即时的数据库连接。有关更多信息,请阅读dat

可能重复:

我有两个数据帧。第一个(df1)是一列100个条目,标题为“名称”。第二个(df2)是一个数据帧,包含数以万计条目的数百列元数据。df2的第一列也有标题“names”

我只想通过在df1中找到的名称子集来选择df2中的所有元数据


请帮助这名新手R用户。谢谢大家!

可以将data.frame与%in%一起使用,但如果要查找数千个名称,则速度可能会很慢

我建议使用data.table,因为它可以对索引列进行排序,甚至可以对数百万条记录进行几乎即时的数据库连接。有关更多信息,请阅读data.table文档

假设您有一个大data.frame和一个小data.frame:

library(data.table)
big <- data.frame(names=1:5, data=1:5)
small <- data.frame(names=c(1, 3, 6))

欢迎来到SO。我建议你在网上阅读任意数量的R常见问题。我并不是用刻薄的方式说这些,但是他们有大量的信息,可以在问题出现之前为你解答。但是,您可以这样做:
df2[df2$names%在%df1$names中,]
使用函数
[
。您似乎也是StackOverflow的新手,欢迎!您之前问了一个(几乎相同)的问题,得到了一个高分的答案,但您从未回答过。(例如,通过注释或单击复选标记接受正确答案。)您可以编辑问题以澄清/改进它们,这比问一个全新的问题更可取。感谢您的热烈响应!在发布问题之前,我搜索了互联网和本网站。我对编程语言的理解有限,无法看到此问题与上一个问题之间的联系。我想学习R,但这是我的第一种编程语言。你对R帮助书有什么建议吗?这两个问题对我们来说是一样的,但对你来说不是一样的,原因是你没有提供一个小的,可复制的例子,我们可以自己运行,你只是模糊地描述你的数据和意图。有关如何编写更好的问题,请参阅。
big <- data.table(big, key='names')
small <- data.table(small, key='names')
big[small]
#    names data
# 1:     1    1
# 2:     3    3
# 3:     6   NA