我有一个方差 - 协方差矩阵,如下所示:
hyperbPi lZeta lDelta
hyperbPi 0.005113433 0.009151182 0.008327188
lZeta 0.009151182 1.661749998 1.590549700
lDelta 0.008327188 1.590549700 1.526103143
我怎样才能以第一列中的lZeta和第二列中的hyperbPi以及第三列中的lDelta的方式切换它?我的意思是以这样的方式切换逻辑不会丢失。我不能只是切换列本身,因为它是一个方差 - 协方差矩阵?
答案 0 :(得分:3)
cor
,cov
和var
等功能会按照与源data.frame
中的列相同的顺序创建矩阵。您可以使用基本列索引轻松指定其他订单。
考虑这个无意义的例子:
set.seed(1)
x <- data.frame(matrix(sample(20, 18, replace = TRUE), ncol = 3))
names(x) <- c("two", "one", "three")
cov(x)
# two one three
# two 36.666667 -25.8 4.866667
# one -25.800000 45.9 -5.500000
# three 4.866667 -5.5 18.566667
cov(x[c(2, 1, 3)])
# one two three
# one 45.9 -25.800000 -5.500000
# two -25.8 36.666667 4.866667
# three -5.5 4.866667 18.566667