R - 获取两个矩阵具有相同行的行号

标签 r matrix find rows equals

我必须矩阵,并且我不希望哪些行是相同的。

假设我有一个矩阵 A,如下所示: A = matrix(1:12, 4, 3, byrow=T)

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

[1,] 1 2 3

[2,] 4 5 6

[3,] 7 8 9

[4,] 10 11 12

较短的矩阵 B:B <-matrix(c(0,2,2,7,8,9,4,5,6),3,3,byrow=T)

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

[1,] 0 2 2

[2,] 7 8 9

[3,] 4 5 6

我想要的是当 B 中也存在行时 A 的行号。 在这个例子中我想得到:23 .

我尝试用 setkey 解决它,但由于矩阵首先已排序,所以我只得到行,但没有得到行数。

最佳答案

或者,您可以使用 plyr 中的 match_df:

match_df(data.frame(A),data.frame(B))
Matching on: X1, X2, X3
  X1 X2 X3
2  4  5  6
3  7  8  9

要提取行数,您可以输入 as.numeric(rownames(match_df(data.frame(A),data.frame(B))))

关于R - 获取两个矩阵具有相同行的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28884037/

相关文章:

arrays - CUDA 共享内存不比全局快?

r 表达重新编码因子

r - 在同一个函数中组合 scale_colour 和 scale_fill

linux - 关于find命令中xargs的使用

matlab - Matlab中矩阵维数必须符合错误吗?

用该列的中位数替换矩阵每一列中的 NA

regex - linux + 不规则表达式查找机制(查找命令)或 perl

r - 将篮子数据框融化为没有循环的单个数据框

r - 根据id和date-R合并数据集

c++ - Mat元素批量修改: negative to 0,正为1