我有一个相关性数据框,看起来像这样(尽管我的真实数据中有大约15,000行)
phen1<-c("A","B","C")
phen2<-c("B","C","A")
cors<-c(0.3,0.7,0.8)
data<-as.data.frame(cbind(phen1, phen2, cors))
phen1 phen2 cors
1 A B 0.3
2 B C 0.7
3 C A 0.8
这个数据框架是由外部创建并读入到R中的,我想将这个数据框架转换成一个相关矩阵,其中phen1和phen2作为该矩阵的行和列标签。我只计算了下三角或上三角的值,对角线的值为1。因此,我希望最终结果是一个完整的相关矩阵,但第一步可能是创建下/上三角矩阵,然后将其转换为完整矩阵。我不确定如何执行这两个步骤。
另外,结果可能不是直观的顺序,但我不确定这是否重要。理想情况下,我希望有一种方法可以使用phen1和phen2中的标签来确保矩阵中有正确的值放在正确的位置。
本质上,我希望得到类似于以下的结果:
A B C
A 1 0.3 0.8
B 0.3 1 0.7
C 0.8 0.7 1
cbind
,它会将数字强制转换为字符字符串。只需使用data <- data.frame(phen1, phen2, cors)
。 - Roland