Skip to contents

Scale shape coordinates to unit centroid size (without centering).

Usage

coo_scale(x, ..., .cols = NULL, .ldk_col = NULL)

Arguments

x

A matrix (nx2), list of matrices, or tibble with coo columns.

...

Additional arguments (reserved for future use).

.cols

Column name(s) to process when x is a tibble. If NULL, automatically detects columns containing coo objects.

Value

  • If x is a single matrix: returns the scaled matrix

  • If x is a list: returns a list of scaled matrices

  • If x is a tibble: returns the tibble with scaled coo column(s)

Details

Scales coordinates to unit centroid size: divides all coordinates by centroid size. Equivalent to scale(x, center = FALSE, scale = TRUE) in base R.

Does NOT center the shape first. Use coo_center() before coo_scale() if needed.

For rescaling by a custom factor, use coo_rescale().

See also

coo_rescale() for custom scaling; coo_center() for centering; get_centroid_size() for size measurement

Examples

# Single shape - scale to unit size
coo_scale(shapes$cat)
#> <xy [120 x 2]>
#>       [,1]    [,2]   
#>  [1,] 188.278  93.784
#>  [2,] 188.227  93.707
#>  [3,] 188.278  93.707
#>  [4,] 188.356  93.681
#>  [5,] 188.395  93.603
#>  [6,] ...     ...    
#>  [7,] 188.524  93.564
#>  [8,] 188.446  93.590
#>  [9,] 188.382  93.668
#> [10,] 188.330  93.745
#> [11,] 188.304  93.823

# List of shapes
coo_scale(bot$coo)
#> $brahma
#> <xy [138 x 2]>
#>       [,1]    [,2]   
#>  [1,] 174.679 543.917
#>  [2,] 174.687 543.859
#>  [3,] 174.687 543.829
#>  [4,] 174.695 543.771
#>  [5,] 174.704 543.713
#>  [6,] ...     ...    
#>  [7,] 174.671 544.178
#>  [8,] 174.668 544.147
#>  [9,] 174.668 544.090
#> [10,] 174.671 544.032
#> [11,] 174.673 544.005
#> 
#> $caney
#> <xy [168 x 2]>
#>       [,1]    [,2]   
#>  [1,] 182.318 507.838
#>  [2,] 182.318 507.808
#>  [3,] 182.321 507.748
#>  [4,] 182.318 507.718
#>  [5,] 182.321 507.688
#>  [6,] ...     ...    
#>  [7,] 182.388 508.081
#>  [8,] 182.361 508.021
#>  [9,] 182.345 507.988
#> [10,] 182.336 507.958
#> [11,] 182.324 507.898
#> 
#> $chimay
#> <xy [189 x 2]>
#>       [,1]    [,2]   
#>  [1,] 168.494 314.888
#>  [2,] 168.494 314.853
#>  [3,] 168.494 314.823
#>  [4,] 168.498 314.789
#>  [5,] 168.498 314.754
#>  [6,] ...     ...    
#>  [7,] 168.537 315.086
#>  [8,] 168.515 315.051
#>  [9,] 168.502 315.021
#> [10,] 168.494 314.987
#> [11,] 168.490 314.952
#> 
#> $corona
#> <xy [129 x 2]>
#>       [,1]    [,2]   
#>  [1,] 184.664 407.303
#>  [2,] 184.664 407.265
#>  [3,] 184.660 407.187
#>  [4,] 184.664 407.149
#>  [5,] 184.664 407.108
#>  [6,] ...     ...    
#>  [7,] 184.765 407.602
#>  [8,] 184.735 407.527
#>  [9,] 184.716 407.494
#> [10,] 184.701 407.453
#> [11,] 184.675 407.381
#> 
#> $deusventrue
#> <xy [152 x 2]>
#>       [,1]    [,2]   
#>  [1,] 179.208 467.309
#>  [2,] 179.194 467.279
#>  [3,] 179.168 467.219
#>  [4,] 179.158 467.189
#>  [5,] 179.134 467.122
#>  [6,] ...     ...    
#>  [7,] 179.294 467.555
#>  [8,] 179.284 467.522
#>  [9,] 179.261 467.462
#> [10,] 179.251 467.432
#> [11,] 179.234 467.372
#> 
#> $duvel
#> <xy [161 x 2]>
#>       [,1]    [,2]   
#>  [1,] 178.712 287.245
#>  [2,] 178.712 287.195
#>  [3,] 178.712 287.145
#>  [4,] 178.712 287.145
#>  [5,] 178.712 287.095
#>  [6,] ...     ...    
#>  [7,] 178.771 287.490
#>  [8,] 178.748 287.440
#>  [9,] 178.730 287.394
#> [10,] 178.730 287.394
#> [11,] 178.721 287.344
#> 
#> $franziskaner
#> <xy [124 x 2]>
#>       [,1]    [,2]   
#>  [1,] 160.984 423.256
#>  [2,] 160.984 423.184
#>  [3,] 160.984 423.149
#>  [4,] 160.984 423.084
#>  [5,] 160.984 423.049
#>  [6,] ...     ...    
#>  [7,] 161.005 423.577
#>  [8,] 161.001 423.505
#>  [9,] 160.995 423.470
#> [10,] 160.984 423.398
#> [11,] 160.984 423.363
#> 
#> $grimbergen
#> <xy [126 x 2]>
#>       [,1]    [,2]   
#>  [1,] 166.281 394.899
#>  [2,] 166.273 394.862
#>  [3,] 166.273 394.784
#>  [4,] 166.273 394.743
#>  [5,] 166.273 394.705
#>  [6,] ...     ...    
#>  [7,] 166.400 395.209
#>  [8,] 166.348 395.134
#>  [9,] 166.326 395.093
#> [10,] 166.311 395.056
#> [11,] 166.288 394.977
#> 
#> $guiness
#> <xy [183 x 2]>
#>       [,1]    [,2]   
#>  [1,] 181.761 372.105
#>  [2,] 181.761 372.074
#>  [3,] 181.761 372.043
#>  [4,] 181.761 372.008
#>  [5,] 181.761 371.945
#>  [6,] ...     ...    
#>  [7,] 181.777 372.327
#>  [8,] 181.769 372.292
#>  [9,] 181.753 372.234
#> [10,] 181.757 372.202
#> [11,] 181.761 372.167
#> 
#> $hoegardeen
#> <xy [193 x 2]>
#>       [,1]    [,2]   
#>  [1,] 172.882 526.976
#>  [2,] 172.877 526.939
#>  [3,] 172.877 526.905
#>  [4,] 172.877 526.868
#>  [5,] 172.877 526.831
#>  [6,] ...     ...    
#>  [7,] 172.928 527.188
#>  [8,] 172.916 527.151
#>  [9,] 172.908 527.117
#> [10,] 172.896 527.081
#> [11,] 172.894 527.044
#> 
#> $jupiler
#> <xy [156 x 2]>
#>       [,1]    [,2]   
#>  [1,] 175.231 510.987
#>  [2,] 175.228 510.944
#>  [3,] 175.228 510.904
#>  [4,] 175.228 510.861
#>  [5,] 175.228 510.818
#>  [6,] ...     ...    
#>  [7,] 175.290 511.239
#>  [8,] 175.275 511.196
#>  [9,] 175.265 511.156
#> [10,] 175.253 511.113
#> [11,] 175.244 511.070
#> 
#> $kingfisher
#> <xy [182 x 2]>
#>       [,1]    [,2]   
#>  [1,] 161.459 365.304
#>  [2,] 161.459 365.262
#>  [3,] 161.459 365.224
#>  [4,] 161.459 365.182
#>  [5,] 161.459 365.140
#>  [6,] ...     ...    
#>  [7,] 161.501 365.547
#>  [8,] 161.489 365.510
#>  [9,] 161.480 365.468
#> [10,] 161.468 365.426
#> [11,] 161.468 365.384
#> 
#> $latrappe
#> <xy [136 x 2]>
#>       [,1]    [,2]   
#>  [1,] 175.492 344.178
#>  [2,] 175.489 344.134
#>  [3,] 175.489 344.087
#>  [4,] 175.489 344.044
#>  [5,] 175.489 343.997
#>  [6,] ...     ...    
#>  [7,] 175.499 344.450
#>  [8,] 175.489 344.403
#>  [9,] 175.492 344.359
#> [10,] 175.492 344.312
#> [11,] 175.492 344.269
#> 
#> $lindemanskriek
#> <xy [176 x 2]>
#>       [,1]    [,2]   
#>  [1,] 163.548 405.482
#>  [2,] 163.548 405.453
#>  [3,] 163.530 405.398
#>  [4,] 163.527 405.366
#>  [5,] 163.527 405.337
#>  [6,] ...     ...    
#>  [7,] 163.610 405.696
#>  [8,] 163.603 405.667
#>  [9,] 163.592 405.635
#> [10,] 163.585 405.606
#> [11,] 163.566 405.544
#> 
#> $nicechouffe
#> <xy [146 x 2]>
#>       [,1]    [,2]   
#>  [1,] 170.171 338.222
#>  [2,] 170.167 338.188
#>  [3,] 170.150 338.114
#>  [4,] 170.150 338.075
#>  [5,] 170.145 338.040
#>  [6,] ...     ...    
#>  [7,] 170.232 338.469
#>  [8,] 170.219 338.434
#>  [9,] 170.210 338.395
#> [10,] 170.202 338.365
#> [11,] 170.184 338.296
#> 
#> $pecheresse
#> <xy [129 x 2]>
#>       [,1]    [,2]   
#>  [1,] 174.940 489.545
#>  [2,] 174.934 489.484
#>  [3,] 174.934 489.454
#>  [4,] 174.930 489.390
#>  [5,] 174.924 489.329
#>  [6,] ...     ...    
#>  [7,] 175.014 489.819
#>  [8,] 175.005 489.787
#>  [9,] 174.988 489.729
#> [10,] 174.972 489.667
#> [11,] 174.966 489.638
#> 
#> $sierranevada
#> <xy [176 x 2]>
#>       [,1]    [,2]   
#>  [1,] 166.122 333.618
#>  [2,] 166.122 333.566
#>  [3,] 166.122 333.566
#>  [4,] 166.122 333.509
#>  [5,] 166.122 333.457
#>  [6,] ...     ...    
#>  [7,] 166.131 333.886
#>  [8,] 166.122 333.830
#>  [9,] 166.113 333.778
#> [10,] 166.122 333.726
#> [11,] 166.122 333.726
#> 
#> $tanglefoot
#> <xy [174 x 2]>
#>       [,1]    [,2]   
#>  [1,] 174.077 346.256
#>  [2,] 174.077 346.224
#>  [3,] 174.077 346.192
#>  [4,] 174.077 346.127
#>  [5,] 174.081 346.095
#>  [6,] ...     ...    
#>  [7,] 174.093 346.481
#>  [8,] 174.081 346.449
#>  [9,] 174.077 346.417
#> [10,] 174.073 346.353
#> [11,] 174.073 346.321
#> 
#> $tauro
#> <xy [174 x 2]>
#>       [,1]    [,2]   
#>  [1,] 175.156 511.774
#>  [2,] 175.150 511.737
#>  [3,] 175.150 511.701
#>  [4,] 175.150 511.661
#>  [5,] 175.150 511.624
#>  [6,] ...     ...    
#>  [7,] 175.202 511.995
#>  [8,] 175.193 511.959
#>  [9,] 175.177 511.922
#> [10,] 175.171 511.885
#> [11,] 175.165 511.845
#> 
#> $westmalle
#> <xy [141 x 2]>
#>       [,1]    [,2]   
#>  [1,] 161.435 383.043
#>  [2,] 161.435 383.012
#>  [3,] 161.424 382.945
#>  [4,] 161.424 382.914
#>  [5,] 161.420 382.847
#>  [6,] ...     ...    
#>  [7,] 161.498 383.305
#>  [8,] 161.486 383.270
#>  [9,] 161.474 383.207
#> [10,] 161.459 383.172
#> [11,] 161.451 383.110
#> 
#> $amrut
#> <xy [191 x 2]>
#>       [,1]    [,2]   
#>  [1,] 162.355 420.636
#>  [2,] 162.355 420.602
#>  [3,] 162.355 420.567
#>  [4,] 162.355 420.532
#>  [5,] 162.355 420.497
#>  [6,] ...     ...    
#>  [7,] 162.348 420.845
#>  [8,] 162.355 420.810
#>  [9,] 162.355 420.775
#> [10,] 162.355 420.741
#> [11,] 162.355 420.706
#> 
#> $ballantines
#> <xy [146 x 2]>
#>       [,1]    [,2]   
#>  [1,] 173.700 329.606
#>  [2,] 173.700 329.544
#>  [3,] 173.700 329.514
#>  [4,] 173.700 329.456
#>  [5,] 173.700 329.425
#>  [6,] ...     ...    
#>  [7,] 173.700 329.880
#>  [8,] 173.700 329.818
#>  [9,] 173.700 329.787
#> [10,] 173.700 329.726
#> [11,] 173.700 329.699
#> 
#> $bushmills
#> <xy [165 x 2]>
#>       [,1]    [,2]   
#>  [1,] 180.465 432.449
#>  [2,] 180.465 432.399
#>  [3,] 180.465 432.345
#>  [4,] 180.465 432.345
#>  [5,] 180.465 432.295
#>  [6,] ...     ...    
#>  [7,] 180.458 432.707
#>  [8,] 180.458 432.657
#>  [9,] 180.458 432.603
#> [10,] 180.458 432.603
#> [11,] 180.458 432.553
#> 
#> $chivas
#> <xy [164 x 2]>
#>       [,1]    [,2]   
#>  [1,] 181.499 405.860
#>  [2,] 181.492 405.832
#>  [3,] 181.485 405.772
#>  [4,] 181.485 405.744
#>  [5,] 181.485 405.687
#>  [6,] ...     ...    
#>  [7,] 181.668 406.089
#>  [8,] 181.640 406.064
#>  [9,] 181.584 406.005
#> [10,] 181.563 405.976
#> [11,] 181.524 405.916
#> 
#> $dalmore
#> <xy [155 x 2]>
#>       [,1]    [,2]   
#>  [1,] 175.922 328.219
#>  [2,] 175.902 328.170
#>  [3,] 175.890 328.118
#>  [4,] 175.882 328.069
#>  [5,] 175.882 328.021
#>  [6,] ...     ...    
#>  [7,] 176.125 328.458
#>  [8,] 176.125 328.458
#>  [9,] 176.072 328.413
#> [10,] 176.024 328.369
#> [11,] 175.983 328.320
#> 
#> $famousgrouse
#> <xy [169 x 2]>
#>       [,1]    [,2]   
#>  [1,] 173.740 299.274
#>  [2,] 173.740 299.226
#>  [3,] 173.740 299.182
#>  [4,] 173.740 299.133
#>  [5,] 173.740 299.133
#>  [6,] ...     ...    
#>  [7,] 173.730 299.509
#>  [8,] 173.730 299.460
#>  [9,] 173.730 299.460
#> [10,] 173.730 299.416
#> [11,] 173.730 299.367
#> 
#> $glendronach
#> <xy [197 x 2]>
#>       [,1]    [,2]   
#>  [1,] 172.914 409.530
#>  [2,] 172.914 409.486
#>  [3,] 172.917 409.442
#>  [4,] 172.917 409.442
#>  [5,] 172.917 409.398
#>  [6,] ...     ...    
#>  [7,] 172.910 409.749
#>  [8,] 172.910 409.705
#>  [9,] 172.914 409.661
#> [10,] 172.914 409.661
#> [11,] 172.914 409.617
#> 
#> $glenmorangie
#> <xy [179 x 2]>
#>       [,1]    [,2]   
#>  [1,] 176.873 494.012
#>  [2,] 176.876 493.960
#>  [3,] 176.876 493.960
#>  [4,] 176.876 493.911
#>  [5,] 176.879 493.860
#>  [6,] ...     ...    
#>  [7,] 176.901 494.258
#>  [8,] 176.888 494.213
#>  [9,] 176.876 494.161
#> [10,] 176.873 494.109
#> [11,] 176.873 494.109
#> 
#> $highlandpark
#> <xy [169 x 2]>
#>       [,1]    [,2]   
#>  [1,] 166.988 346.724
#>  [2,] 166.988 346.668
#>  [3,] 166.988 346.668
#>  [4,] 166.988 346.613
#>  [5,] 166.988 346.557
#>  [6,] ...     ...    
#>  [7,] 166.985 347.001
#>  [8,] 166.988 346.945
#>  [9,] 166.988 346.890
#> [10,] 166.988 346.835
#> [11,] 166.988 346.835
#> 
#> $jackdaniels
#> <xy [150 x 2]>
#>       [,1]    [,2]   
#>  [1,] 182.450 387.856
#>  [2,] 182.450 387.808
#>  [3,] 182.450 387.761
#>  [4,] 182.450 387.714
#>  [5,] 182.450 387.666
#>  [6,] ...     ...    
#>  [7,] 182.476 388.143
#>  [8,] 182.468 388.092
#>  [9,] 182.457 388.045
#> [10,] 182.454 387.998
#> [11,] 182.457 387.950
#> 
#> $jb
#> <xy [174 x 2]>
#>       [,1]    [,2]   
#>  [1,] 172.235 509.070
#>  [2,] 172.235 509.038
#>  [3,] 172.232 509.009
#>  [4,] 172.232 508.944
#>  [5,] 172.235 508.912
#>  [6,] ...     ...    
#>  [7,] 172.232 509.290
#>  [8,] 172.226 509.258
#>  [9,] 172.232 509.229
#> [10,] 172.235 509.164
#> [11,] 172.235 509.132
#> 
#> $johnniewalker
#> <xy [168 x 2]>
#>       [,1]    [,2]   
#>  [1,] 174.132 165.648
#>  [2,] 174.132 165.613
#>  [3,] 174.132 165.578
#>  [4,] 174.132 165.543
#>  [5,] 174.141 165.473
#>  [6,] ...     ...    
#>  [7,] 174.132 165.892
#>  [8,] 174.132 165.857
#>  [9,] 174.132 165.787
#> [10,] 174.132 165.753
#> [11,] 174.132 165.718
#> 
#> $magallan
#> <xy [141 x 2]>
#>       [,1]    [,2]   
#>  [1,] 166.883 388.948
#>  [2,] 166.883 388.887
#>  [3,] 166.891 388.858
#>  [4,] 166.891 388.801
#>  [5,] 166.895 388.739
#>  [6,] ...     ...    
#>  [7,] 166.871 389.214
#>  [8,] 166.871 389.185
#>  [9,] 166.871 389.128
#> [10,] 166.879 389.067
#> [11,] 166.879 389.038
#> 
#> $makersmark
#> <xy [177 x 2]>
#>       [,1]    [,2]   
#>  [1,] 175.991 402.855
#>  [2,] 175.964 402.815
#>  [3,] 175.940 402.775
#>  [4,] 175.940 402.775
#>  [5,] 175.930 402.728
#>  [6,] ...     ...    
#>  [7,] 176.152 403.041
#>  [8,] 176.135 402.993
#>  [9,] 176.112 402.963
#> [10,] 176.112 402.963
#> [11,] 176.065 402.930
#> 
#> $oban
#> <xy [179 x 2]>
#>       [,1]    [,2]   
#>  [1,] 176.170 447.687
#>  [2,] 176.170 447.655
#>  [3,] 176.170 447.595
#>  [4,] 176.170 447.567
#>  [5,] 176.170 447.535
#>  [6,] ...     ...    
#>  [7,] 176.163 447.898
#>  [8,] 176.166 447.866
#>  [9,] 176.166 447.838
#> [10,] 176.166 447.806
#> [11,] 176.166 447.746
#> 
#> $oldpotrero
#> <xy [131 x 2]>
#>       [,1]    [,2]   
#>  [1,] 165.518 284.870
#>  [2,] 165.489 284.832
#>  [3,] 165.460 284.793
#>  [4,] 165.422 284.712
#>  [5,] 165.408 284.668
#>  [6,] ...     ...    
#>  [7,] 165.691 285.153
#>  [8,] 165.681 285.115
#>  [9,] 165.657 285.072
#> [10,] 165.604 284.995
#> [11,] 165.576 284.952
#> 
#> $redbreast
#> <xy [177 x 2]>
#>       [,1]    [,2]   
#>  [1,] 176.352 202.403
#>  [2,] 176.339 202.370
#>  [3,] 176.325 202.343
#>  [4,] 176.306 202.276
#>  [5,] 176.306 202.250
#>  [6,] ...     ...    
#>  [7,] 176.565 202.589
#>  [8,] 176.532 202.563
#>  [9,] 176.499 202.536
#> [10,] 176.439 202.489
#> [11,] 176.405 202.463
#> 
#> $tamdhu
#> <xy [176 x 2]>
#>       [,1]    [,2]   
#>  [1,] 173.426 530.626
#>  [2,] 173.426 530.590
#>  [3,] 173.426 530.552
#>  [4,] 173.426 530.516
#>  [5,] 173.426 530.481
#>  [6,] ...     ...    
#>  [7,] 173.417 530.842
#>  [8,] 173.411 530.807
#>  [9,] 173.414 530.771
#> [10,] 173.417 530.735
#> [11,] 173.420 530.700
#> 
#> $wildturkey
#> <xy [185 x 2]>
#>       [,1]    [,2]   
#>  [1,] 173.309 537.581
#>  [2,] 173.309 537.544
#>  [3,] 173.309 537.507
#>  [4,] 173.309 537.469
#>  [5,] 173.309 537.432
#>  [6,] ...     ...    
#>  [7,] 173.314 537.800
#>  [8,] 173.309 537.766
#>  [9,] 173.300 537.731
#> [10,] 173.300 537.694
#> [11,] 173.300 537.656
#> 
#> $yoichi
#> <xy [123 x 2]>
#>       [,1]    [,2]   
#>  [1,] 180.827 361.246
#>  [2,] 180.827 361.186
#>  [3,] 180.827 361.130
#>  [4,] 180.827 361.070
#>  [5,] 180.827 361.010
#>  [6,] ...     ...    
#>  [7,] 180.823 361.538
#>  [8,] 180.823 361.510
#>  [9,] 180.823 361.450
#> [10,] 180.823 361.394
#> [11,] 180.827 361.334
#> 
#> attr(,"class")
#> [1] "out"  "coo"  "list"

# Tibble - center then scale
bot %>% coo_center() %>% coo_scale()
#> # A tibble: 40 × 3
#>    coo       type   dummy
#>    <out>     <fct>  <fct>
#>  1 (138 x 2) whisky a    
#>  2 (168 x 2) whisky a    
#>  3 (189 x 2) whisky a    
#>  4 (129 x 2) whisky a    
#>  5 (152 x 2) whisky a    
#>  6 (161 x 2) whisky a    
#>  7 (124 x 2) whisky a    
#>  8 (126 x 2) whisky a    
#>  9 (183 x 2) whisky a    
#> 10 (193 x 2) whisky a    
#> # ℹ 30 more rows