比较r中两个矩阵之间的坐标并输出相同的坐标

时间:2014-10-20 18:17:42

标签: r matrix compare comparison

我有2个数据帧,每个数据帧由坐标行组成,即x,y,z

这些数据框长度不同

我希望能够使用一个数据框作为参考,并在另一个数据框中搜索在所有 3个位置匹配的任何坐标

然后我想将这些坐标写入另一个数据框

即。 数据框一:

[1,]  1  2  3
[2,]  2  3  3
[3,]  1  2  4
[4,]  4  2  5

数据框二:

[1,]  3  2  3
[2,]  1  1  2  
[3,]  2  3  3
[4,]  1  2  3

我希望这回复

[1,]  2  3  3
[2,]  1  2  3

匹配的

即。我想要它,而不仅仅是检查相同数字的行,而是检查数据框中的所有行。

1 个答案:

答案 0 :(得分:2)

您可以使用intersect

中的dplyr
library(dplyr)
intersect(as.data.frame(m1) , as.data.frame(m2))
#   V1 V2 V3
#1  2  3  3
#2  1  2  3

或者您可以使用

mNew <- rbind(m1,m2)
mNew[duplicated(mNew),]
#      [,1] [,2] [,3]
#[1,]    2    3    3
#[2,]    1    2    3

数据

 m1 <- matrix(c(1,2,1,4, 2,3,2,4, 3,3,4,5), ncol=3)
 m2 <- matrix(c(3,1,2,1,2,1,3,2,3,2,3,3), ncol=3)