使用pmatch检查矩阵的列到另一个

时间:2016-06-23 09:25:53

标签: r matrix match

我有两个矩阵,我想检查第一个中的哪个(列)向量也在第二个中,如果是,则获取它们的索引。

我尝试使用pmatch但我必须稍微调整它,因为它首先将矩阵转换为向量,请参阅MWE:

X <- matrix(rnorm(12), 3, 4)
x <- X[, c(2, 4)]

pm <- pmatch(x, X)
print(pm)
[1]  4  5  6 10 11 12

d1 <- dim(X)[1]
d2 <- length(pm)/d1
ind <- pmatch(x, X)[d1*c(1:d2)]/d1
print(ind)
[1] 2 4

ind是我想要的,但我想可能有预建功能。而且我也关心计算效率。

1 个答案:

答案 0 :(得分:2)

我们可以遍历&#39; x&#39;并使用==

sapply(seq_len(ncol(x)), function(i) which(!colSums(X != x[,i])))
#[1] 2 4