# Reorder matrix rows and columns based on alphabetical order of colnames and rownames in R

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
``````