根据 R 中另一个矩阵中的值设置矩阵中的值

Setting values in a matrix according to values in another matrix in R

我有一个相关矩阵 (c.mat) 和 (p.mat) 中每个相关的 p 值矩阵。

p.mat 中的每个坐标是 c.mat 中该坐标处相关性的 p 值。

我想将 c.mat 中任何 p 值低于阈值 (0.05) 的相关性设置为 NA。

在此先感谢您的帮助。

我想 which 就是您要找的。这假定相同的矩阵大小。

set.seed(9)
a <- matrix(rnorm(9, 10, 2), nrow=3)
b <- matrix(rnorm(9, .2, .2), nrow=3)
a[which(b<.05)] <- NA

正如上面提到的coffeinjunky,这也可以通过基本的子集操作来完成:

(@cory,我使用了你的一些代码)

set.seed(9)

c.mat <- matrix(rnorm(9, 10, 2), nrow=3)
p.mat <- matrix(rnorm(9, .2, .2), nrow=3)
c.mat[p.mat<0.05] <- NA

# inital c.mat
          [,1]      [,2]      [,3]
[1,] 11.775768 10.364504  8.613336
[2,]  8.585017  9.466223 15.363980
[3,] 13.513986 11.852843 10.445049

# inital p.mat
          [,1]      [,2]        [,3]
[1,] 0.1274126 0.2142108  0.03211007
[2,] 0.4555141 0.1467923  0.18451039
[3,] 0.1062206 0.5690514 -0.32354111

# c.mat after threshold correction
          [,1]      [,2]     [,3]
[1,] 11.775768 10.364504       NA
[2,]  8.585017  9.466223 15.36398
[3,] 13.513986 11.852843       NA