通过另一个数据帧对数据帧进行子集

时间:2013-11-04 22:43:08

标签: r

数据如下:

> x
  a b
1 1 a
2 2 a
3 3 a
4 1 b
5 2 b
6 3 b

> y
  a b
1 2 a
2 3 a
3 3 b

我的目标是比较两个数据框,x中的每一行表示y中是否存在等效行。所有y行实际上都包含在x中,所以我想最终得到类似的内容:

> x
  a b intersect.x.y
1 1 a             F
2 2 a             T
3 3 a             T
4 1 b             F
5 2 b             F
6 3 b             T

那怎么样?

1 个答案:

答案 0 :(得分:2)

这个怎么样?

x$rn          <- 1:nrow(x)
xyrows        <- merge(x,y)$rn # maybe you just want to look at the merge ...?
x$iny         <- FALSE
x$iny[xyrows] <- TRUE

我怀疑有更标准的方法,但这种方式很容易理解。