I was wondering if there is a way to reorder the rows and columns of the MATRIX
below by their rownames and colnames in alphabetical order?
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"
)))
>Solution :
You can sort the rownames()
and colnames()
with sort()
and use them
to index MATRIX
via the square bracket indexing [x, y]
, where x
indexes
rows and y
columns.
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