cluster_matrix: Reorder a Matrix Based on Hierarchical Clustering

Description Usage Arguments Value See Also Examples

View source: R/cluster_matrix.R

Description

Reorder matrix rows, columns, or both via hierarchical clustering.

Usage

1
cluster_matrix(x, dim = "both", method = "ward.D2", ...)

Arguments

x

A matrix.

dim

The dimension to reorder (cluster); must be set to "row", "col", or "both".

method

The agglomeration method to be used (see hclust).

...

ignored.

Value

Returns a reordered matrix.

See Also

hclust

Examples

 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
cluster_matrix(mtcars)
cluster_matrix(mtcars, dim = 'row')
cluster_matrix(mtcars, dim = 'col')

## Not run: 
if (!require("pacman")) install.packages("pacman")
pacman::p_load(tidyverse, viridis, gridExtra)

## plot heatmap w/o clustering
wo <- mtcars %>%
    cor() %>%
    tidy_matrix('car', 'var') %>%
    ggplot(aes(var, car, fill = value)) +
         geom_tile() +
         scale_fill_viridis(name = expression(r[xy])) +
         theme(
             axis.text.y = element_text(size = 8)   ,
             axis.text.x = element_text(
                 size = 8, 
                 hjust = 1, 
                 vjust = 1, 
                 angle = 45
             ),   
             legend.position = 'bottom',
             legend.key.height = grid::unit(.1, 'cm'),
             legend.key.width = grid::unit(.5, 'cm')
         ) +
         labs(subtitle = "With Out Clustering")

## plot heatmap w clustering
w <- mtcars %>%
    cor() %>%
    cluster_matrix() %>%
    tidy_matrix('car', 'var') %>%
    mutate(
        var = factor(var, levels = unique(var)),
        car = factor(car, levels = unique(car))        
    ) %>%
    group_by(var) %>%
    ggplot(aes(var, car, fill = value)) +
         geom_tile() +
         scale_fill_viridis(name = expression(r[xy])) +
         theme(
             axis.text.y = element_text(size = 8)   ,
             axis.text.x = element_text(
                 size = 8, 
                 hjust = 1, 
                 vjust = 1, 
                 angle = 45
             ),   
             legend.position = 'bottom',
             legend.key.height = grid::unit(.1, 'cm'),
             legend.key.width = grid::unit(.5, 'cm')               
         ) +
         labs(subtitle = "With Clustering")

gridExtra::grid.arrange(wo, w, ncol = 2)

## End(Not run)

Example output

                     mpg  qsec vs am cyl drat gear    wt carb  disp  hp
Honda Civic         30.4 18.52  1  1   4 4.93    4 1.615    2  75.7  52
Toyota Corolla      33.9 19.90  1  1   4 4.22    4 1.835    1  71.1  65
Fiat 128            32.4 19.47  1  1   4 4.08    4 2.200    1  78.7  66
Fiat X1-9           27.3 18.90  1  1   4 4.08    4 1.935    1  79.0  66
Merc 240D           24.4 20.00  1  0   4 3.69    4 3.190    2 146.7  62
Lotus Europa        30.4 16.90  1  1   4 3.77    5 1.513    2  95.1 113
Merc 230            22.8 22.90  1  0   4 3.92    4 3.150    2 140.8  95
Volvo 142E          21.4 18.60  1  1   4 4.11    4 2.780    2 121.0 109
Datsun 710          22.8 18.61  1  1   4 3.85    4 2.320    1 108.0  93
Toyota Corona       21.5 20.01  1  0   4 3.70    3 2.465    1 120.1  97
Porsche 914-2       26.0 16.70  0  1   4 4.43    5 2.140    2 120.3  91
Ferrari Dino        19.7 15.50  0  1   6 3.62    5 2.770    6 145.0 175
Mazda RX4           21.0 16.46  0  1   6 3.90    4 2.620    4 160.0 110
Mazda RX4 Wag       21.0 17.02  0  1   6 3.90    4 2.875    4 160.0 110
Merc 280            19.2 18.30  1  0   6 3.92    4 3.440    4 167.6 123
Merc 280C           17.8 18.90  1  0   6 3.92    4 3.440    4 167.6 123
Hornet 4 Drive      21.4 19.44  1  0   6 3.08    3 3.215    1 258.0 110
Valiant             18.1 20.22  1  0   6 2.76    3 3.460    1 225.0 105
Merc 450SLC         15.2 18.00  0  0   8 3.07    3 3.780    3 275.8 180
Merc 450SE          16.4 17.40  0  0   8 3.07    3 4.070    3 275.8 180
Merc 450SL          17.3 17.60  0  0   8 3.07    3 3.730    3 275.8 180
Dodge Challenger    15.5 16.87  0  0   8 2.76    3 3.520    2 318.0 150
AMC Javelin         15.2 17.30  0  0   8 3.15    3 3.435    2 304.0 150
Maserati Bora       15.0 14.60  0  1   8 3.54    5 3.570    8 301.0 335
Ford Pantera L      15.8 14.50  0  1   8 4.22    5 3.170    4 351.0 264
Duster 360          14.3 15.84  0  0   8 3.21    3 3.570    4 360.0 245
Camaro Z28          13.3 15.41  0  0   8 3.73    3 3.840    4 350.0 245
Chrysler Imperial   14.7 17.42  0  0   8 3.23    3 5.345    4 440.0 230
Cadillac Fleetwood  10.4 17.98  0  0   8 2.93    3 5.250    4 472.0 205
Lincoln Continental 10.4 17.82  0  0   8 3.00    3 5.424    4 460.0 215
Hornet Sportabout   18.7 17.02  0  0   8 3.15    3 3.440    2 360.0 175
Pontiac Firebird    19.2 17.05  0  0   8 3.08    3 3.845    2 400.0 175
                     mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
                     mpg  qsec vs am cyl drat gear    wt carb  disp  hp
Mazda RX4           21.0 16.46  0  1   6 3.90    4 2.620    4 160.0 110
Mazda RX4 Wag       21.0 17.02  0  1   6 3.90    4 2.875    4 160.0 110
Datsun 710          22.8 18.61  1  1   4 3.85    4 2.320    1 108.0  93
Hornet 4 Drive      21.4 19.44  1  0   6 3.08    3 3.215    1 258.0 110
Hornet Sportabout   18.7 17.02  0  0   8 3.15    3 3.440    2 360.0 175
Valiant             18.1 20.22  1  0   6 2.76    3 3.460    1 225.0 105
Duster 360          14.3 15.84  0  0   8 3.21    3 3.570    4 360.0 245
Merc 240D           24.4 20.00  1  0   4 3.69    4 3.190    2 146.7  62
Merc 230            22.8 22.90  1  0   4 3.92    4 3.150    2 140.8  95
Merc 280            19.2 18.30  1  0   6 3.92    4 3.440    4 167.6 123
Merc 280C           17.8 18.90  1  0   6 3.92    4 3.440    4 167.6 123
Merc 450SE          16.4 17.40  0  0   8 3.07    3 4.070    3 275.8 180
Merc 450SL          17.3 17.60  0  0   8 3.07    3 3.730    3 275.8 180
Merc 450SLC         15.2 18.00  0  0   8 3.07    3 3.780    3 275.8 180
Cadillac Fleetwood  10.4 17.98  0  0   8 2.93    3 5.250    4 472.0 205
Lincoln Continental 10.4 17.82  0  0   8 3.00    3 5.424    4 460.0 215
Chrysler Imperial   14.7 17.42  0  0   8 3.23    3 5.345    4 440.0 230
Fiat 128            32.4 19.47  1  1   4 4.08    4 2.200    1  78.7  66
Honda Civic         30.4 18.52  1  1   4 4.93    4 1.615    2  75.7  52
Toyota Corolla      33.9 19.90  1  1   4 4.22    4 1.835    1  71.1  65
Toyota Corona       21.5 20.01  1  0   4 3.70    3 2.465    1 120.1  97
Dodge Challenger    15.5 16.87  0  0   8 2.76    3 3.520    2 318.0 150
AMC Javelin         15.2 17.30  0  0   8 3.15    3 3.435    2 304.0 150
Camaro Z28          13.3 15.41  0  0   8 3.73    3 3.840    4 350.0 245
Pontiac Firebird    19.2 17.05  0  0   8 3.08    3 3.845    2 400.0 175
Fiat X1-9           27.3 18.90  1  1   4 4.08    4 1.935    1  79.0  66
Porsche 914-2       26.0 16.70  0  1   4 4.43    5 2.140    2 120.3  91
Lotus Europa        30.4 16.90  1  1   4 3.77    5 1.513    2  95.1 113
Ford Pantera L      15.8 14.50  0  1   8 4.22    5 3.170    4 351.0 264
Ferrari Dino        19.7 15.50  0  1   6 3.62    5 2.770    6 145.0 175
Maserati Bora       15.0 14.60  0  1   8 3.54    5 3.570    8 301.0 335
Volvo 142E          21.4 18.60  1  1   4 4.11    4 2.780    2 121.0 109
Loading required package: pacman

textshape documentation built on May 29, 2021, 1:07 a.m.