如何根据R中另一个数据帧中的列的值筛选数据帧?

如何根据R中另一个数据帧中的列的值筛选数据帧?,r,R,例如,我有一个数据帧-- 结果应该是-- 我发现了一些例子,但这些都是针对小数据帧的,我的两个数据帧都是大的 正在尝试编写查询,但没有成功?你怎么能解决这个问题 谢谢 我们可以使用%中的%和子集根据两个数据集中的“键”列对“ad1”中的行进行子集 subset(ad1, key %in% ad$key) # key QS IS LISR Group version #1 ab 7 23 77 2 1.2 #2 bc 7 30 70 1 1.5

例如,我有一个数据帧--

结果应该是--

我发现了一些例子,但这些都是针对小数据帧的,我的两个数据帧都是大的

正在尝试编写查询,但没有成功?你怎么能解决这个问题


谢谢

我们可以使用%中的
%和
子集
根据两个数据集中的“键”列对“ad1”中的行进行子集

subset(ad1, key %in% ad$key)
#   key QS IS LISR Group version
#1  ab  7 23   77     2     1.2
#2  bc  7 30   70     1     1.5
#3  cd  8 40   60     2     1.4
或者另一个选项是从
data.table
中加入
join
。在devel版本中,我们可以在
上使用
。我们将“data.frame”转换为“data.table”(
setDT(ad1)
),并加入“ad”数据集

library(data.table)#v1.9.5+
setDT(ad1)[ad['key'], on='key']
#  key QS IS LISR Group version
#1:  ab  7 23   77     2     1.2
#2:  bc  7 30   70     1     1.5
#3:  cd  8 40   60     2     1.4

我们可以使用%
中的
%和
子集
根据两个数据集中的“键”列对“ad1”中的行进行子集

subset(ad1, key %in% ad$key)
#   key QS IS LISR Group version
#1  ab  7 23   77     2     1.2
#2  bc  7 30   70     1     1.5
#3  cd  8 40   60     2     1.4
或者另一个选项是从
data.table
中加入
join
。在devel版本中,我们可以在
上使用
。我们将“data.frame”转换为“data.table”(
setDT(ad1)
),并加入“ad”数据集

library(data.table)#v1.9.5+
setDT(ad1)[ad['key'], on='key']
#  key QS IS LISR Group version
#1:  ab  7 23   77     2     1.2
#2:  bc  7 30   70     1     1.5
#3:  cd  8 40   60     2     1.4
这也适用于:

ad1[which(ad1$key %in% ad$key),]
这也适用于:

ad1[which(ad1$key %in% ad$key),]

Try
subset(ad1,键%in%ad$key)
值列是否应该对输出有任何影响?很抱歉,数据帧中的列名键不同,但是根据您的建议(我刚刚更改了列名)结果如果列名不同,请在
子集中使用该列名(ad1,%ad$key中的%key)
值列是否应该对输出有任何影响?很抱歉,数据帧中的列名键不同,但根据您的建议(我刚刚更改了列名)结果如果列名不同,请在
子集中使用该列名
“耶和华给了,耶和华带走了。”(c:“耶和华给了,耶和华带走了。”(c: