比较矩阵行与另一行

时间:2018-10-09 17:00:41

标签: r matrix boolean compare apply

我有两个矩阵,一个矩阵来自实验(df1),另一个矩阵是参考(df2)。它们是样本中从1到50的半定量值。我想将实验中的df1的每一行与参考值是否都为True(相同)进行比较。

df1:

      [,1] [,2] [,3] [,4] [,5] [,6]
 [1,]    6   14   32   38   40   48
 [2,]    1   12   17   20   36   47
 [3,]    7   15   29   33   40   42
 [4,]    7   13   28   33   35   48
 [5,]    1    2   13   36   38   41
 [6,]   12   20   37   38   41   48
 [7,]   13   14   28   34   36   43
 ...more rows

 df2:
       [,1] [,2] [,3] [,4] [,5] [,6]
 [1,]    5   12   14   15   24   32
 [2,]    4    5   13   22   34   47
 [3,]    1   14   24   29   34   36
 [4,]    7   13   28   33   35   48
 [5,]   13   14   28   34   36   43
 [6,]    4   10   13   17   29   30
 [7,]    4   15   22   30   36   43
 [8,]    1   11   18   36   41   48
 [9,]   14   17   18   24   43   47
[10,]   13   24   32   34   41   47
...more rows

desired output:
 V1  V2   V3   V4   V5   V6   V7
 7   13   28   33   35   48   TRUE
13   14   28   34   36   43   TRUE

如何将一个矩阵的所有行与另一个矩阵进行比较以对所有TRUE行进行排序?谢谢。

1 个答案:

答案 0 :(得分:1)

这是执行此操作的一种方法-

x <- matrix(1:4, nrow=2)

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

y <- matrix(c(1,2,5,4), nrow=2)

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

do.call(paste, as.data.frame(x)) %in% do.call(paste, as.data.frame(y))

FALSE  TRUE

我想这应该比在所有列中进行inner_join更快。