R 当第1列与其他向量中的值匹配时,从第3列返回值

R 当第1列与其他向量中的值匹配时,从第3列返回值,r,R,我有一个向量a,其中有几个ID码: a <- c(167.1, 89.7, 284.1, 108.1, 50.6, 276.5, 283.2, 357.3, 119.2, 92.2, 314.4, 400.2, 154.5, 104.5, 198.2) > a [1] 167.1 89.7 284.1 108.1 50.6 276.5 283.2 357.3 119.2 92.2 314.4 400.2 154.5 104.5 198.2 在一个新向量中,当y$Drop\u

我有一个向量
a
,其中有几个ID码:

a <- c(167.1, 89.7, 284.1, 108.1, 50.6, 276.5, 283.2, 357.3, 119.2, 92.2, 314.4, 400.2, 154.5, 104.5, 198.2)
> a
[1] 167.1  89.7 284.1 108.1  50.6 276.5 283.2 357.3 119.2  92.2 314.4 400.2 154.5 104.5 198.2
在一个新向量中,当
y$Drop\u ID
中的值与
a
中的值匹配时,我想报告y中的值,因此最终结果应该如下所示:

>b
Drop_ID           Common.Name distance_m
1   167.1             Bocaccio       0.390
2   108.1   Shortbelly Rockfish      0.405
3   198.2          Chilipepper       0.413
4   119.2   Shortbelly Rockfish      0.424
到目前为止,我能想到的唯一方法是使用一个for循环,该循环带有一个嵌套的if语句,用于检查每一行以及是否发生匹配,并存储值,但我相信一定有更好的方法来实现这一点


谢谢。

您只需将其子集:

y[y$Drop_ID %in% a, ]

您只需将其子集:

y[y$Drop_ID %in% a, ]