两个矩阵R之间的条件共现

时间:2019-09-12 18:03:06

标签: r matrix

假设我有两个矩阵(例如距离矩阵),并且我想获得同时满足矩阵A中的条件A和矩阵B中的条件B的行值。

set.seed(123)
matrix_A = dist(sample(1:100, 4))

   1  2  3
2 50      
3 12 38   
4 57  7 45

matrix_B = dist(sample(seq(0.1, 0.9, 0.001), 4))

     1     2     3
2 0.717            
3 0.332 0.385      
4 0.041 0.676 0.291

现在我要应用一个简单的规则:多久执行一次...

  • 矩阵A中的值大于40,并且
  • 同时出现矩阵B中大于0.5的值?

我要寻找一个理想的值,该值理想地是从另一个矩阵导出的,例如

1  2  3
2  1     
3  0 0   
4  0 0 0

因此,此处仅对于第一和第二观察(矩阵A:50,矩阵B:0.717)是正确的规则,即共现值为1。

我将如何在R中执行此操作?我正在寻找两个矩阵的条件比较的实现。

2 个答案:

答案 0 :(得分:2)

怎么样:

matrix((matrix_A > 40) & (matrix_B > 0.5), nrow=3, ncol = 3)

输出:

      [,1]  [,2]  [,3]
[1,]  TRUE FALSE  TRUE
[2,] FALSE FALSE FALSE
[3,] FALSE FALSE FALSE

答案 1 :(得分:1)

您需要的是:

`attributes<-`(matrix_A>40 & matrix_B>0.5,attributes(matrix_A))
  1 2 3
2 1    
3 0 0  
4 0 0 0