Description Usage Arguments Author(s) See Also Examples
sort_descOnDiag()  where possible, sort rows and columns of a matrix
to put the highest values on diagonal in a descending order. The highest
value is paced at the top left corner.
sort_colSums() sorts columns of a matrix according to the values of column sums.
sort_colMax() sorts columns of a matrix according to the maximum value in each column.
sort_rowSums() sorts rows of a matrix according to the values of row sums.
sort_rowMax() sorts rows of a matrix according to the maximum value in each row.
Possible application: in a cluster analysis sort rows and columns of a cross
tablation by the best match (illustration in section "Expamples"). 
| 1 2 3 4 5 6 7 8 9 | sort_descOnDiag(M, importance = which.min(dim(M)), na.rm = TRUE)
sort_colSums(M, decreasing = TRUE, na.rm = TRUE)
sort_rowSums(M, decreasing = TRUE, na.rm = TRUE)
sort_rowMax(M, decreasing = TRUE, na.rm = TRUE)
sort_colMax(M, decreasing = TRUE, na.rm = TRUE)
 | 
| M | A matrix. | 
| importance | Numecic value (either 1 for rows or 2 for columns) which is used
to resolve ties when 2 equally important matches are found (i.e., when
absolute values are equal). If  | 
| na.rm | Logical. Should missing values (including NaN) be omitted from the calculations? | 
| decreasing | Logical. Should the sort be decreasing? | 
Vilmantas Gegzna
Other matrix operations in spMisc: 
corr_vec2mat(),
indMatrix(),
nTri2nDiag(),
revalueMatrix(),
which.in(),
which.max.all(),
which.max.perRow()
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | library(spMisc)
# Create matrix
M0 <- matrix(c(0, 11,8, 0,
               12,0, 0, 0,
               0, 0, 0, 9,
               0, 0, 9, 0,
               0, 0, 1, 0),byrow=TRUE,nc=4)
# Give names for rows and columns
M0 <- pkgmaker::addnames(M0)
# Sort and print
M0
sort_descOnDiag(M0)
sort_colSums(M0)
sort_rowSums(M0)
sort_colMax(M0)
sort_rowMax(M0)
# Application in cluster analysis ==========================================
set.seed(1)
Clusters <- kmeans(iris[,-5], 3)$cluster
Species <- iris$Species
# Regular cross tabulation
TABLE <- table(Species, Clusters)
TABLE
##                Clusters
##  Species       1  2  3
##  setosa       50  0  0
##  versicolor    0  2 48
##  virginica     0 36 14
# Arranged by the best match
TABLE_best_match <- sort_descOnDiag(TABLE)
TABLE_best_match
##              Clusters
##  Species       1  3  2
##  setosa       50  0  0
##  versicolor    0 48  2
##  virginica     0 14 36
#------------------------------------------------------------------
# Parameter `importance` for proportional importance:
 #>
Matrix <- matrix(c(3,0,0,2,3,0,0,0,5),3,3)
Matrix <- pkgmaker::addnames(Matrix)
 #>          col1 col2 col3
 #>   row1    3    2    0
 #>   row2    0    3    0
 #>   row3    0    0    5
# Row-wise importance
Matrix_by_row <- sort_descOnDiag(Matrix, importance = 1)
Matrix_by_row
 #>          col3 col2 col1
 #>   row3    5    0    0
 #>   row2    0    3    0
 #>   row1    0    2    3  <---- 2 is in row 3
# Column-wise importance
Matrix_by_col <- sort_descOnDiag(Matrix, importance = 2)
Matrix_by_col
 #>          col3 col1 col2
 #>   row3    5    0    0
 #>   row1    0    3    2  <---- 2 is in row 2
 #>   row2    0    0    3
 | 
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.