创建一半相关矩阵

时间:2017-05-24 13:11:06

标签: r

我在141个变量上使用cor()生成了一个大矩阵。我想生成相关的直方图,因此需要将较低或较高的对角线值拉出到矢量中。

我的数据如下:

          AD02_1083 CD02_1083 AD03_1083 CD03_1083
AD02_1083     1.000     0.998     0.997     0.993
CD02_1083     0.998     1.000     0.993     0.992
AD03_1083     0.997     0.993     1.000     0.997
CD03_1083     0.993     0.992     0.997     1.000  

我想系统地浏览一个大矩阵并抓住这样我将创建一个由c(0.998, 0.997, 0.993, 0.993, 0.992, 0.997)组成的向量,以便我可以检查这些相关的直方图。

我想过从i + 1到141开始循环遍历每一列,然后抓住这样的循环:

my_vec <- vector()
for (i in 2:length(colnames(test))){
    my_vec <- c(my_vec,test[1:i-1,i])    
}

这很有用,虽然我不需要标签。

>my_vec
          AD02_1083 CD02_1083 AD02_1083 CD02_1083 AD03_1083 
    0.998     0.997     0.993     0.993     0.992     0.997

有更优雅的方法吗?

数据:

structure(c(1, 0.998, 0.997, 0.993, 0.998, 1, 0.993, 0.992, 0.997, 
0.993, 1, 0.997, 0.993, 0.992, 0.997, 1), .Dim = c(4L, 4L), .Dimnames = list(
    c("AD02_1083", "CD02_1083", "AD03_1083", "CD03_1083"), c("AD02_1083", 
    "CD02_1083", "AD03_1083", "CD03_1083")))

0 个答案:

没有答案