根据R中列名和行名的字母顺序重新排列矩阵行和列

hts6caw3  于 2023-09-27  发布在  其他
关注(0)|答案(1)|浏览(160)

我想知道是否有一种方法可以按照 * 字母顺序 * 的行名和列名对下面的MATRIX的行和列进行重新排序?

MATRIX <- structure(c(0.00096, 0.00047, -0.00027, -0.00018, 4e-04, 0.00022, 
0.00047, 0.00105, -3e-04, -8e-05, 0.00018, 0.00041, -0.00027, 
-3e-04, 0.00071, 3e-05, -4e-05, -8e-05, -0.00018, -8e-05, 3e-05, 
0.00066, -0.00023, -0.00024, 4e-04, 0.00018, -4e-05, -0.00023, 
0.00083, 0.00036, 0.00022, 0.00041, -8e-05, -0.00024, 0.00036, 
0.00092), dim = c(6L, 6L), dimnames = list(c("acog.perf", "asom.perf", 
"conf.perf", "acog.asom", "acog.conf", "asom.conf"), c("acog.perf", 
"asom.perf", "conf.perf", "acog.asom", "acog.conf", "asom.conf"
)))
anhgbhbe

anhgbhbe1#

您可以使用sort()rownames()colnames()进行排序,并使用它们通过方括号索引[x, y]来索引MATRIX,其中x索引行和y列。

MATRIX[sort(rownames(MATRIX)), sort(colnames(MATRIX))]
#>           acog.asom acog.conf acog.perf asom.conf asom.perf conf.perf
#> acog.asom   0.00066  -0.00023  -0.00018  -0.00024  -0.00008   0.00003
#> acog.conf  -0.00023   0.00083   0.00040   0.00036   0.00018  -0.00004
#> acog.perf  -0.00018   0.00040   0.00096   0.00022   0.00047  -0.00027
#> asom.conf  -0.00024   0.00036   0.00022   0.00092   0.00041  -0.00008
#> asom.perf  -0.00008   0.00018   0.00047   0.00041   0.00105  -0.00030
#> conf.perf   0.00003  -0.00004  -0.00027  -0.00008  -0.00030   0.00071

相关问题