我有一个向量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循环,如果匹配发生,存储值,但我确定必须有更好的方法这样做。
感谢。
答案 0 :(得分:6)
您可以将其分配:
y[y$Drop_ID %in% a, ]