我有一个相关矩阵(c.mat)和(p.mat)中每个相关性的p值矩阵。
p.mat中的每个坐标是c.mat。
中该坐标处的相关性的p值我想将c.mat中的任何相关性设置为低于阈值(0.05)的p值作为NA。
提前感谢您的帮助。
答案 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