当第1列与不同向量

时间:2015-09-15 21:39:42

标签: 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有三列:一个是ID代码,下一个是物种名称,第三个是生物变量(请注意,在我的完整数据集中,有许多行具有相同的Drop_ID值):

> y[4:14,]
Drop_ID           Common.Name distance_m
4    170.4 Greenspotted Rockfish      0.389
5    167.1             Bocaccio       0.390
6    163.1 Greenspotted Rockfish      0.393
7    193.1       Copper Rockfish      0.404
8    108.1   Shortbelly Rockfish      0.405
9    114.2       Spotted Ratfish      0.405
10   190.1          Chilipepper       0.411
11   198.2          Chilipepper       0.413
12   170.4 Greenspotted Rockfish      0.423
13   119.2   Shortbelly Rockfish      0.424
14   159.2        Widow Rockfish      0.431

在新的向量中,当y$Drop_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

到目前为止,我唯一想到的就是使用嵌套if语句检查每一行的for循环,如果匹配发生,存储值,但我确定必须有更好的方法这样做。

感谢。

1 个答案:

答案 0 :(得分:6)

您可以将其分配:

y[y$Drop_ID %in% a, ]