根据 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
我有一个相关矩阵 (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