我在R中进行了相关,我需要从相关矩阵中排除小于abs(0.6)和等于1(主对角线)的值。
有什么办法吗?
以下是此矩阵的示例:
1.00000 0.00685 0.01114 0.80120
0.00685 1.00000 0.09668 0.05184
0.01114 0.96680 1.00000 0.48547
-0.60120 0.05184 0.48547 1.00000
它可能看起来像这样:
0.80120
0.96680
-0.60120
答案 0 :(得分:1)
如果您将符合条件的值设置为NA
?
> set.seed(357)
> x <- matrix(rnorm(16), ncol = 4)
> x <- cor(x)
> x[x > 0.25] <- NA
> print(x, 3)
[,1] [,2] [,3] [,4]
[1,] 0.000 -0.668 -0.263 -0.615
[2,] -0.668 0.000 0.000 0.000
[3,] -0.263 0.000 0.000 -0.516
[4,] -0.615 0.000 -0.516 0.000
答案 1 :(得分:0)
你可以尝试:
mat <- as.matrix(read.table(tc <- textConnection(
"1.00000 0.00685 0.01114 0.80120
0.00685 1.00000 0.09668 0.05184
0.01114 0.96680 1.00000 0.48547
-0.60120 0.05184 0.48547 1.00000"), header = FALSE),nrow=4);
close(tc)
mat[abs(mat) < 0.6 | abs(mat) == 1]<-""
noquote(mat)
> noquote(mat)
V1 V2 V3 V4
[1,] 0.8012
[2,]
[3,] 0.9668
[4,] -0.6012
请注意,由于您希望条件有空/空条目,因此矩阵元素将被强制转换为字符类型。