R 相关协方差矩阵到方差协方差矩阵
有没有一种简单的方法将相关协方差矩阵转换为方差协方差矩阵?我总是对循环使用嵌套的R 相关协方差矩阵到方差协方差矩阵,r,matrix,covariance,correlation,R,Matrix,Covariance,Correlation,有没有一种简单的方法将相关协方差矩阵转换为方差协方差矩阵?我总是对循环使用嵌套的,如下所示,但我一直认为baseR中可能有一个内置函数 my.matrix <- matrix(c(0.64901, 0.76519, -0.63620, -0.01923, 0.02114, 0.00118, -0.43198, 0.02480, -0.21811, -0.00630, 0.18109, 0.059
,如下所示,但我一直认为baseR
中可能有一个内置函数
my.matrix <- matrix(c(0.64901, 0.76519, -0.63620, -0.01923,
0.02114, 0.00118, -0.43198, 0.02480,
-0.21811, -0.00630, 0.18109, 0.05964,
-0.00710, 0.00039, 0.01162, 0.20972), nrow=4, byrow=TRUE)
new.matrix <- my.matrix
for(i in 1:nrow(my.matrix)) {
for(j in 1:ncol(my.matrix)) {
new.matrix[i,j] = ifelse(i<j, my.matrix[j,i], new.matrix[i,j])
}
}
new.matrix
# [,1] [,2] [,3] [,4]
# [1,] 0.64901 0.02114 -0.21811 -0.00710
# [2,] 0.02114 0.00118 -0.00630 0.00039
# [3,] -0.21811 -0.00630 0.18109 0.01162
# [4,] -0.00710 0.00039 0.01162 0.20972
my.matrix我认为您可能需要使用获取索引,然后交换行和列。试试这个
k <- which(lower.tri(my.matrix), arr.ind=TRUE)
my.matrix[k[,c(2,1)]] <- my.matrix[k]
k