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

时间:2016-02-24 20:29:12

标签: r matrix matrix-multiplication

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

p.mat中的每个坐标是c.mat。

中该坐标处的相关性的p值

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

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我认为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

答案 1 :(得分:0)

正如上面提到的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