Splits a data frame or matrix by grouping variables and scales numeric variables within each group.
scaleBy(formula, data = parent.frame(), center = TRUE, scale = TRUE)
scale_by(data, formula, center = TRUE, scale = TRUE)
A list of data frames or matrices (same class as input), one per group.
scale_by(iris, ~Species)
#> $setosa
#> Sepal.Length Sepal.Width Petal.Length Petal.Width
#> 1 0.26667447 0.18994136 -0.3570112 -0.4364923
#> 2 -0.30071802 -1.12909583 -0.3570112 -0.4364923
#> 3 -0.86811050 -0.60148096 -0.9328358 -0.4364923
#> 4 -1.15180675 -0.86528840 0.2188133 -0.4364923
#> 5 -0.01702177 0.45374879 -0.3570112 -0.4364923
#> 6 1.11776320 1.24517111 1.3704625 1.4613004
#> 7 -1.15180675 -0.07386608 -0.3570112 0.5124040
#> 8 -0.01702177 -0.07386608 0.2188133 -0.4364923
#> 9 -1.71919923 -1.39290327 -0.3570112 -0.4364923
#> 10 -0.30071802 -0.86528840 0.2188133 -1.3853887
#> 11 1.11776320 0.71755623 0.2188133 -0.4364923
#> 12 -0.58441426 -0.07386608 0.7946379 -0.4364923
#> 13 -0.58441426 -1.12909583 -0.3570112 -1.3853887
#> 14 -2.00289548 -1.12909583 -2.0844850 -1.3853887
#> 15 2.25254817 1.50897854 -1.5086604 -0.4364923
#> 16 1.96885193 2.56420830 0.2188133 1.4613004
#> 17 1.11776320 1.24517111 -0.9328358 1.4613004
#> 18 0.26667447 0.18994136 -0.3570112 0.5124040
#> 19 1.96885193 0.98136367 1.3704625 0.5124040
#> 20 0.26667447 0.98136367 0.2188133 0.5124040
#> 21 1.11776320 -0.07386608 1.3704625 -0.4364923
#> 22 0.26667447 0.71755623 0.2188133 1.4613004
#> 23 -1.15180675 0.45374879 -2.6603096 -0.4364923
#> 24 0.26667447 -0.33767352 1.3704625 2.4101967
#> 25 -0.58441426 -0.07386608 2.5221117 -0.4364923
#> 26 -0.01702177 -1.12909583 0.7946379 -0.4364923
#> 27 -0.01702177 -0.07386608 0.7946379 1.4613004
#> 28 0.55037071 0.18994136 0.2188133 -0.4364923
#> 29 0.55037071 -0.07386608 -0.3570112 -0.4364923
#> 30 -0.86811050 -0.60148096 0.7946379 -0.4364923
#> 31 -0.58441426 -0.86528840 0.7946379 -0.4364923
#> 32 1.11776320 -0.07386608 0.2188133 1.4613004
#> 33 0.55037071 1.77278598 0.2188133 -1.3853887
#> 34 1.40145944 2.03659342 -0.3570112 -0.4364923
#> 35 -0.30071802 -0.86528840 0.2188133 -0.4364923
#> 36 -0.01702177 -0.60148096 -1.5086604 -0.4364923
#> 37 1.40145944 0.18994136 -0.9328358 -0.4364923
#> 38 -0.30071802 0.45374879 -0.3570112 -1.3853887
#> 39 -1.71919923 -1.12909583 -0.9328358 -0.4364923
#> 40 0.26667447 -0.07386608 0.2188133 -0.4364923
#> 41 -0.01702177 0.18994136 -0.9328358 0.5124040
#> 42 -1.43550299 -2.97574790 -0.9328358 0.5124040
#> 43 -1.71919923 -0.60148096 -0.9328358 -0.4364923
#> 44 -0.01702177 0.18994136 0.7946379 3.3590930
#> 45 0.26667447 0.98136367 2.5221117 1.4613004
#> 46 -0.58441426 -1.12909583 -0.3570112 0.5124040
#> 47 0.26667447 0.98136367 0.7946379 -0.4364923
#> 48 -1.15180675 -0.60148096 -0.3570112 -0.4364923
#> 49 0.83406695 0.71755623 0.2188133 -0.4364923
#> 50 -0.01702177 -0.33767352 -0.3570112 -0.4364923
#>
#> $versicolor
#> Sepal.Length Sepal.Width Petal.Length Petal.Width
#> 51 2.06133180 1.37030688 0.93634757 0.3742048
#> 52 0.89892665 1.37030688 0.51073504 0.8798869
#> 53 1.86759761 1.05163086 1.36196010 0.8798869
#> 54 -0.84468108 -1.49777728 -0.55329629 -0.1314774
#> 55 1.09266084 0.09560281 0.72354130 0.8798869
#> 56 -0.45721269 0.09560281 0.51073504 -0.1314774
#> 57 0.70519246 1.68898289 0.93634757 1.3855691
#> 58 -2.00708623 -1.17910126 -2.04294015 -1.6485238
#> 59 1.28639503 0.41427882 0.72354130 -0.1314774
#> 60 -1.42588365 -0.22307321 -0.76610255 0.3742048
#> 61 -1.81335204 -2.45380533 -1.61732761 -1.6485238
#> 62 -0.06974431 0.73295484 -0.12768376 0.8798869
#> 63 0.12398988 -1.81645330 -0.55329629 -1.6485238
#> 64 0.31772407 0.41427882 0.93634757 0.3742048
#> 65 -0.65094688 0.41427882 -1.40452135 -0.1314774
#> 66 1.48012923 1.05163086 0.29792877 0.3742048
#> 67 -0.65094688 0.73295484 0.51073504 0.8798869
#> 68 -0.26347850 -0.22307321 -0.34049002 -1.6485238
#> 69 0.51145827 -1.81645330 0.51073504 0.8798869
#> 70 -0.65094688 -0.86042525 -0.76610255 -1.1428417
#> 71 -0.06974431 1.37030688 1.14915383 2.3969334
#> 72 0.31772407 0.09560281 -0.55329629 -0.1314774
#> 73 0.70519246 -0.86042525 1.36196010 0.8798869
#> 74 0.31772407 0.09560281 0.93634757 -0.6371595
#> 75 0.89892665 0.41427882 0.08512251 -0.1314774
#> 76 1.28639503 0.73295484 0.29792877 0.3742048
#> 77 1.67386342 0.09560281 1.14915383 0.3742048
#> 78 1.48012923 0.73295484 1.57476636 1.8912512
#> 79 0.12398988 0.41427882 0.51073504 0.8798869
#> 80 -0.45721269 -0.54174923 -1.61732761 -1.6485238
#> 81 -0.84468108 -1.17910126 -0.97890882 -1.1428417
#> 82 -0.84468108 -1.17910126 -1.19171508 -1.6485238
#> 83 -0.26347850 -0.22307321 -0.76610255 -0.6371595
#> 84 0.12398988 -0.22307321 1.78757263 1.3855691
#> 85 -1.03841527 0.73295484 0.51073504 0.8798869
#> 86 0.12398988 2.00765891 0.51073504 1.3855691
#> 87 1.48012923 1.05163086 0.93634757 0.8798869
#> 88 0.70519246 -1.49777728 0.29792877 -0.1314774
#> 89 -0.65094688 0.73295484 -0.34049002 -0.1314774
#> 90 -0.84468108 -0.86042525 -0.55329629 -0.1314774
#> 91 -0.84468108 -0.54174923 0.29792877 -0.6371595
#> 92 0.31772407 0.73295484 0.72354130 0.3742048
#> 93 -0.26347850 -0.54174923 -0.55329629 -0.6371595
#> 94 -1.81335204 -1.49777728 -2.04294015 -1.6485238
#> 95 -0.65094688 -0.22307321 -0.12768376 -0.1314774
#> 96 -0.45721269 0.73295484 -0.12768376 -0.6371595
#> 97 -0.45721269 0.41427882 -0.12768376 -0.1314774
#> 98 0.51145827 0.41427882 0.08512251 -0.1314774
#> 99 -1.61961784 -0.86042525 -2.68135894 -1.1428417
#> 100 -0.45721269 0.09560281 -0.34049002 -0.1314774
#>
#> $virginica
#> Sepal.Length Sepal.Width Petal.Length Petal.Width
#> 101 -0.4529159 1.0108633 0.81174906 1.72583253
#> 102 -1.2392283 -0.8496213 -0.81899682 -0.45876561
#> 103 0.8051839 0.0806210 0.63055507 0.26943377
#> 104 -0.4529159 -0.2294598 0.08697311 -0.82286530
#> 105 -0.1383910 0.0806210 0.44936109 0.63353346
#> 106 1.5914963 0.0806210 1.89891298 0.26943377
#> 107 -2.6545906 -1.4697828 -1.90616074 -1.18696499
#> 108 1.1197088 -0.2294598 1.35533102 -0.82286530
#> 109 0.1761340 -1.4697828 0.44936109 -0.82286530
#> 110 0.9624464 1.9411055 0.99294305 1.72583253
#> 111 -0.1383910 0.7007825 -0.81899682 -0.09466592
#> 112 -0.2956535 -0.8496213 -0.45660885 -0.45876561
#> 113 0.3333965 0.0806210 -0.09422087 0.26943377
#> 114 -1.3964908 -1.4697828 -1.00019081 -0.09466592
#> 115 -1.2392283 -0.5395405 -0.81899682 1.36173284
#> 116 -0.2956535 0.7007825 -0.45660885 0.99763315
#> 117 -0.1383910 0.0806210 -0.09422087 -0.82286530
#> 118 1.7487587 2.5612670 2.08010696 0.63353346
#> 119 1.7487587 -1.1597020 2.44249494 0.99763315
#> 120 -0.9247034 -2.4000250 -1.00019081 -1.91516437
#> 121 0.4906589 0.7007825 0.26816710 0.99763315
#> 122 -1.5537533 -0.5395405 -1.18138479 -0.09466592
#> 123 1.7487587 -0.5395405 2.08010696 -0.09466592
#> 124 -0.4529159 -0.8496213 -1.18138479 -0.82286530
#> 125 0.1761340 1.0108633 0.26816710 0.26943377
#> 126 0.9624464 0.7007825 0.81174906 -0.82286530
#> 127 -0.6101784 -0.5395405 -1.36257878 -0.82286530
#> 128 -0.7674409 0.0806210 -1.18138479 -0.82286530
#> 129 -0.2956535 -0.5395405 0.08697311 0.26943377
#> 130 0.9624464 0.0806210 0.44936109 -1.55106468
#> 131 1.2769713 -0.5395405 0.99294305 -0.45876561
#> 132 2.0632837 2.5612670 1.53652500 -0.09466592
#> 133 -0.2956535 -0.5395405 0.08697311 0.63353346
#> 134 -0.4529159 -0.5395405 -0.81899682 -1.91516437
#> 135 -0.7674409 -1.1597020 0.08697311 -2.27926406
#> 136 1.7487587 0.0806210 0.99294305 0.99763315
#> 137 -0.4529159 1.3209440 0.08697311 1.36173284
#> 138 -0.2956535 0.3907017 -0.09422087 -0.82286530
#> 139 -0.9247034 0.0806210 -1.36257878 -0.82286530
#> 140 0.4906589 0.3907017 -0.27541486 0.26943377
#> 141 0.1761340 0.3907017 0.08697311 1.36173284
#> 142 0.4906589 0.3907017 -0.81899682 0.99763315
#> 143 -1.2392283 -0.8496213 -0.81899682 -0.45876561
#> 144 0.3333965 0.7007825 0.63055507 0.99763315
#> 145 0.1761340 1.0108633 0.26816710 1.72583253
#> 146 0.1761340 0.0806210 -0.63780283 0.99763315
#> 147 -0.4529159 -1.4697828 -1.00019081 -0.45876561
#> 148 -0.1383910 0.0806210 -0.63780283 -0.09466592
#> 149 -0.6101784 1.3209440 -0.27541486 0.99763315
#> 150 -1.0819658 0.0806210 -0.81899682 -0.82286530
#>
scale_by(iris, ~1)
#> $<NA>
#> NULL
#>
## Combine result into one data frame:
a <- scale_by(iris, ~Species)
d <- do.call(rbind, a)
## Old interface
scaleBy(~Species, data = iris, center = TRUE, scale = FALSE)
#> $setosa
#> Sepal.Length Sepal.Width Petal.Length Petal.Width
#> 1 0.094 0.072 -0.062 -0.046
#> 2 -0.106 -0.428 -0.062 -0.046
#> 3 -0.306 -0.228 -0.162 -0.046
#> 4 -0.406 -0.328 0.038 -0.046
#> 5 -0.006 0.172 -0.062 -0.046
#> 6 0.394 0.472 0.238 0.154
#> 7 -0.406 -0.028 -0.062 0.054
#> 8 -0.006 -0.028 0.038 -0.046
#> 9 -0.606 -0.528 -0.062 -0.046
#> 10 -0.106 -0.328 0.038 -0.146
#> 11 0.394 0.272 0.038 -0.046
#> 12 -0.206 -0.028 0.138 -0.046
#> 13 -0.206 -0.428 -0.062 -0.146
#> 14 -0.706 -0.428 -0.362 -0.146
#> 15 0.794 0.572 -0.262 -0.046
#> 16 0.694 0.972 0.038 0.154
#> 17 0.394 0.472 -0.162 0.154
#> 18 0.094 0.072 -0.062 0.054
#> 19 0.694 0.372 0.238 0.054
#> 20 0.094 0.372 0.038 0.054
#> 21 0.394 -0.028 0.238 -0.046
#> 22 0.094 0.272 0.038 0.154
#> 23 -0.406 0.172 -0.462 -0.046
#> 24 0.094 -0.128 0.238 0.254
#> 25 -0.206 -0.028 0.438 -0.046
#> 26 -0.006 -0.428 0.138 -0.046
#> 27 -0.006 -0.028 0.138 0.154
#> 28 0.194 0.072 0.038 -0.046
#> 29 0.194 -0.028 -0.062 -0.046
#> 30 -0.306 -0.228 0.138 -0.046
#> 31 -0.206 -0.328 0.138 -0.046
#> 32 0.394 -0.028 0.038 0.154
#> 33 0.194 0.672 0.038 -0.146
#> 34 0.494 0.772 -0.062 -0.046
#> 35 -0.106 -0.328 0.038 -0.046
#> 36 -0.006 -0.228 -0.262 -0.046
#> 37 0.494 0.072 -0.162 -0.046
#> 38 -0.106 0.172 -0.062 -0.146
#> 39 -0.606 -0.428 -0.162 -0.046
#> 40 0.094 -0.028 0.038 -0.046
#> 41 -0.006 0.072 -0.162 0.054
#> 42 -0.506 -1.128 -0.162 0.054
#> 43 -0.606 -0.228 -0.162 -0.046
#> 44 -0.006 0.072 0.138 0.354
#> 45 0.094 0.372 0.438 0.154
#> 46 -0.206 -0.428 -0.062 0.054
#> 47 0.094 0.372 0.138 -0.046
#> 48 -0.406 -0.228 -0.062 -0.046
#> 49 0.294 0.272 0.038 -0.046
#> 50 -0.006 -0.128 -0.062 -0.046
#>
#> $versicolor
#> Sepal.Length Sepal.Width Petal.Length Petal.Width
#> 51 1.064 0.43 0.44 0.074
#> 52 0.464 0.43 0.24 0.174
#> 53 0.964 0.33 0.64 0.174
#> 54 -0.436 -0.47 -0.26 -0.026
#> 55 0.564 0.03 0.34 0.174
#> 56 -0.236 0.03 0.24 -0.026
#> 57 0.364 0.53 0.44 0.274
#> 58 -1.036 -0.37 -0.96 -0.326
#> 59 0.664 0.13 0.34 -0.026
#> 60 -0.736 -0.07 -0.36 0.074
#> 61 -0.936 -0.77 -0.76 -0.326
#> 62 -0.036 0.23 -0.06 0.174
#> 63 0.064 -0.57 -0.26 -0.326
#> 64 0.164 0.13 0.44 0.074
#> 65 -0.336 0.13 -0.66 -0.026
#> 66 0.764 0.33 0.14 0.074
#> 67 -0.336 0.23 0.24 0.174
#> 68 -0.136 -0.07 -0.16 -0.326
#> 69 0.264 -0.57 0.24 0.174
#> 70 -0.336 -0.27 -0.36 -0.226
#> 71 -0.036 0.43 0.54 0.474
#> 72 0.164 0.03 -0.26 -0.026
#> 73 0.364 -0.27 0.64 0.174
#> 74 0.164 0.03 0.44 -0.126
#> 75 0.464 0.13 0.04 -0.026
#> 76 0.664 0.23 0.14 0.074
#> 77 0.864 0.03 0.54 0.074
#> 78 0.764 0.23 0.74 0.374
#> 79 0.064 0.13 0.24 0.174
#> 80 -0.236 -0.17 -0.76 -0.326
#> 81 -0.436 -0.37 -0.46 -0.226
#> 82 -0.436 -0.37 -0.56 -0.326
#> 83 -0.136 -0.07 -0.36 -0.126
#> 84 0.064 -0.07 0.84 0.274
#> 85 -0.536 0.23 0.24 0.174
#> 86 0.064 0.63 0.24 0.274
#> 87 0.764 0.33 0.44 0.174
#> 88 0.364 -0.47 0.14 -0.026
#> 89 -0.336 0.23 -0.16 -0.026
#> 90 -0.436 -0.27 -0.26 -0.026
#> 91 -0.436 -0.17 0.14 -0.126
#> 92 0.164 0.23 0.34 0.074
#> 93 -0.136 -0.17 -0.26 -0.126
#> 94 -0.936 -0.47 -0.96 -0.326
#> 95 -0.336 -0.07 -0.06 -0.026
#> 96 -0.236 0.23 -0.06 -0.126
#> 97 -0.236 0.13 -0.06 -0.026
#> 98 0.264 0.13 0.04 -0.026
#> 99 -0.836 -0.27 -1.26 -0.226
#> 100 -0.236 0.03 -0.16 -0.026
#>
#> $virginica
#> Sepal.Length Sepal.Width Petal.Length Petal.Width
#> 101 -0.288 0.326 0.448 0.474
#> 102 -0.788 -0.274 -0.452 -0.126
#> 103 0.512 0.026 0.348 0.074
#> 104 -0.288 -0.074 0.048 -0.226
#> 105 -0.088 0.026 0.248 0.174
#> 106 1.012 0.026 1.048 0.074
#> 107 -1.688 -0.474 -1.052 -0.326
#> 108 0.712 -0.074 0.748 -0.226
#> 109 0.112 -0.474 0.248 -0.226
#> 110 0.612 0.626 0.548 0.474
#> 111 -0.088 0.226 -0.452 -0.026
#> 112 -0.188 -0.274 -0.252 -0.126
#> 113 0.212 0.026 -0.052 0.074
#> 114 -0.888 -0.474 -0.552 -0.026
#> 115 -0.788 -0.174 -0.452 0.374
#> 116 -0.188 0.226 -0.252 0.274
#> 117 -0.088 0.026 -0.052 -0.226
#> 118 1.112 0.826 1.148 0.174
#> 119 1.112 -0.374 1.348 0.274
#> 120 -0.588 -0.774 -0.552 -0.526
#> 121 0.312 0.226 0.148 0.274
#> 122 -0.988 -0.174 -0.652 -0.026
#> 123 1.112 -0.174 1.148 -0.026
#> 124 -0.288 -0.274 -0.652 -0.226
#> 125 0.112 0.326 0.148 0.074
#> 126 0.612 0.226 0.448 -0.226
#> 127 -0.388 -0.174 -0.752 -0.226
#> 128 -0.488 0.026 -0.652 -0.226
#> 129 -0.188 -0.174 0.048 0.074
#> 130 0.612 0.026 0.248 -0.426
#> 131 0.812 -0.174 0.548 -0.126
#> 132 1.312 0.826 0.848 -0.026
#> 133 -0.188 -0.174 0.048 0.174
#> 134 -0.288 -0.174 -0.452 -0.526
#> 135 -0.488 -0.374 0.048 -0.626
#> 136 1.112 0.026 0.548 0.274
#> 137 -0.288 0.426 0.048 0.374
#> 138 -0.188 0.126 -0.052 -0.226
#> 139 -0.588 0.026 -0.752 -0.226
#> 140 0.312 0.126 -0.152 0.074
#> 141 0.112 0.126 0.048 0.374
#> 142 0.312 0.126 -0.452 0.274
#> 143 -0.788 -0.274 -0.452 -0.126
#> 144 0.212 0.226 0.348 0.274
#> 145 0.112 0.326 0.148 0.474
#> 146 0.112 0.026 -0.352 0.274
#> 147 -0.288 -0.474 -0.552 -0.126
#> 148 -0.088 0.026 -0.352 -0.026
#> 149 -0.388 0.426 -0.152 0.274
#> 150 -0.688 0.026 -0.452 -0.226
#>
scaleBy(~1, data = iris)
#> $<NA>
#> NULL
#>