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