如何从R中的相关矩阵中获取值?

时间:2014-04-11 08:45:03

标签: r analytics correlation

我在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    

2 个答案:

答案 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

请注意,由于您希望条件有空/空条目,因此矩阵元素将被强制转换为字符类型。