0

我有以下称为 gg 和 yy 的数据。

> str(gg)
 num [1:1992] 128 130 132 185 186 187 188 189 190 191 ...
> str(yy)
'data.frame':   2103 obs. of  2 variables:
 $ grp  : num  128 130 132 185 186 187 188 189 190 191 ...
 $ predd: num  -0.963 -1.518 1.712 -11.286 -8.195 ...
> 

您会注意到 gg 的前几个值与 yy 的前几个值匹配。

如果值 yy$grp 与 gg 中的任何值匹配,我想从 yy 中选择行。问题是 gg 和 yy 的长度不等。此外,有些 gg 的值在 yy$grp 中不存在,还有一些 yy$grp 的值在 gg 中不存在。

我似乎无法让它工作。它基本上是基于我提到的索引值(gg 或 yy$grp)的两个数据集的交集。

我试过了:

inters<-intersect(gg,yy$grp)
yyint<-yy[yy$grp==inters,]

但得到以下

Warning message:
In yy$grp == inters :
  longer object length is not a multiple of shorter object length

> str(yya)
'data.frame':   28 obs. of  2 variables:
 $ grp  : num  128 130 132 185 186 187 188 189 190 191 ...
 $ predd: num  -0.963 -1.518 1.712 -11.286 -8.195 ...

至少按照我的计划,yya 应该更长。

谢谢。

4

1 回答 1

1

正如我所提到的,我认为这就是你想要的:

yy[yy$grp %in% gg,]
于 2013-09-15T02:09:04.257 回答