在我的一个数据文件中,相关矩阵以长格式存储,其中前三列表示变量,后三列表示量表间相关 . 令人沮丧的是,我必须承认,行可以表示特定构造的不同子维度(例如,列1中的0) .

数据文件(用于荟萃分析)由博士生构建,他们手动“分解”所有相关的相关矩阵(因此宽格式矩阵不是由另一段代码生成的) .

Example

[,1] [,2] [,3]  [,4]  [,5]  [,6]
[1,]    0    4    1 -0.32  0.25 -0.08
[2,]    0    4    2 -0.32  0.15 -0.04
[3,]    0    4    3 -0.32 -0.04  0.27
[4,]    0    4    4 -0.32 -0.14 -0.16
[5,]    0    4    1 -0.01  0.33 -0.08
[6,]    0    4    2 -0.01  0.36 -0.04
[7,]    0    4    3 -0.01  0.04  0.27
[8,]    0    4    4 -0.01 -0.03 -0.16

我的问题是,如何恢复层间相关矩阵 . 这样,

c1_0a   c1_0b   c2_4    c3_1    c3_2    c3_3    c3_4
c1_0a                           
c1_0b                           
c2_4    -0.32   -0.01                   
c3_1    0.25    0.33    -0.08               
c3_2    0.15    0.36    -0.04               
c3_3    -0.04   0.04    0.27                
c3_4    -0.14   -0.03   -0.16

我想这可以用reshape2包完成,但我不确定如何继续 . 非常感谢您的帮助!

到目前为止我尝试过的(相当于块状):

  • 我确定了第1,2和4列的唯一组合,我将其转换为相关矩阵#1;

  • 类似地,我确定了列1,3和5的独特组合,我将其转换为相关矩阵#2;

  • 类似地,我确定了第2,3和6列的独特组合,我将其转换为相关矩阵#3;

  • 接下来,我将三个矩阵绑定在一起,这给出了错误的解决方案 .

这里的问题是矩阵#1具有不同的维度[因为第一个构造(0)和第二个构造(4)之间的关系报告了两个不同的相关性]而不是矩阵#3 [因为报告了八个不同的相关性第二构建体(4)和第三构建体(1-4)] .

我尝试了 meltreshape2 包以克服这些问题(并提出了更优雅的解决方案),但我没有找到任何关于如何在这些包中设置函数来重建相关矩阵的线索 .