R 交换列?
我有一个方差-协方差矩阵,如下所示:R 交换列?,r,matrix,R,Matrix,我有一个方差-协方差矩阵,如下所示: 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,第二列有hyperpi,第三列有lDelta?我的意思是以这样一种方
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,第二列有hyperpi,第三列有lDelta?我的意思是以这样一种方式切换,即逻辑不会丢失。我不能仅仅切换列本身,因为它是一个方差-协方差矩阵?像
cor
、cov
、和var
这样的函数将以与源数据中的列相同的顺序创建一个矩阵。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
set.seed(1)
像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
set.seed(1)
重新排列调用cov
或您正在使用的任何函数中的列<代码>cov(mydf[c(2,1,3)])
。一些示例数据可能会有帮助。这或仅仅是这样做:yourMx重新排列您调用的cov
或您正在使用的任何函数中的列<代码>cov(mydf[c(2,1,3)])
。一些示例数据可能会有帮助。这或者简单地说:yourMx