scale(x, center = TRUE, scale = TRUE) ## Default S3 method: scale(x, center = TRUE, scale = TRUE)
x | the matrix to be scaled. Missing values (NAs) are allowed. |
center |
specifies whether or how to control the value subtracted from each column. Can be a
logical value or a vector.
|
scale |
specifies whether or how to control the value divided into each column to scale it.
Can be a logical value or a vector.
|
A <- matrix(c(1:3,3*(1:3),2^(1:3)), nrow=3) A # [,1] [,2] [,3] # [1,] 1 3 2 # [2,] 2 6 4 # [3,] 3 9 8# center and scale scale(A) # [,1] [,2] [,3] # [1,] -1 -1 -0.8728716 # [2,] 0 0 -0.2182179 # [3,] 1 1 1.0910895 # attr(,"scaled:center") # [1] 2.000000 6.000000 4.666667 # attr(,"scaled:scale") # [1] 1.00000 3.00000 3.05505
# check column means and variances of centered and scaled matrix apply(scale(A),2,mean) # [1] 0.000000e+000 0.000000e+000 -1.480297e-016 apply(scale(A),2,var) # [1] 1 1 1
# just center scale(A, scale=FALSE) # [,1] [,2] [,3] # [1,] -1 -3 -2.6666667 # [2,] 0 0 -0.6666667 # [3,] 1 3 3.3333333 # attr(,"scaled:center") # [1] 2.000000 6.000000 4.666667
# just scale scale(A, center=FALSE) # [,1] [,2] [,3] # [1,] 0.3779645 0.3779645 0.3086067 # [2,] 0.7559289 0.7559289 0.6172134 # [3,] 1.1338934 1.1338934 1.2344268 # attr(,"scaled:scale") # [1] 2.645751 7.937254 6.480741
# just center by a vector of values scale(A, center=c(1,2,4), scale=FALSE) # [,1] [,2] [,3] # [1,] 0 1 -2 # [2,] 1 4 0 # [3,] 2 7 4 # attr(,"scaled:center") # [1] 1 2 4
# just scale by a vector of values scale(A, center=FALSE, scale=c(1,2,4)) # [,1] [,2] [,3] # [1,] 1 1.5 0.5 # [2,] 2 3.0 1.0 # [3,] 3 4.5 2.0 # attr(,"scaled:scale") # [1] 1 2 4