Open In App

Scale the Columns of a Matrix in R Programming – scale() Function

Improve
Improve
Like Article
Like
Save
Share
Report

scale() function in R Language is a generic function which centers and scales the columns of a numeric matrix. The center parameter takes either numeric alike vector or logical value. If the numeric vector is provided, then each column of the matrix has the corresponding value from center subtracted from it. If the logical value is provided TRUE, then column means of the matrix is subtracted from their corresponding columns. The scale takes either numeric alike vector or logical value. When provided with a numeric like vector, then each column of the matrix is divided by the corresponding value from scale. If the logical value is provided in scale parameter, then centered columns of the matrix is divided by their standard deviations, and the root mean square otherwise. If FALSE, no scaling is done on the matrix.

Syntax: scale(x, center = TRUE, scale = TRUE) Parameters: x: represents numeric matrix center: represents either logical value or numeric alike vector equal to the number of x scale: represents either logical value or numeric alike vector equal to the number of x

Example 1: 

r




# Create matrix
mt <- matrix(1:10, ncol = 5)
 
# Print matrix
cat("Matrix:\n")
print(mt)
 
# Scale matrix with default arguments
cat("\nAfter scaling:\n")
scale(mt)


Output:

Matrix:
     [, 1] [, 2] [, 3] [, 4] [, 5]
[1, ]    1    3    5    7    9
[2, ]    2    4    6    8   10

After scaling:
           [, 1]       [, 2]       [, 3]       [, 4]       [, 5]
[1, ] -0.7071068 -0.7071068 -0.7071068 -0.7071068 -0.7071068
[2, ]  0.7071068  0.7071068  0.7071068  0.7071068  0.7071068
attr(, "scaled:center")
[1] 1.5 3.5 5.5 7.5 9.5
attr(, "scaled:scale")
[1] 0.7071068 0.7071068 0.7071068 0.7071068 0.7071068

Example 2: 

r




# Create matrix
mt <- matrix(1:10, ncol = 2)
 
# Print matrix
cat("Matrix:\n")
print(mt)
 
# Scale center by vector of values
cat("\nScale center by vector of values:\n")
scale(mt, center = c(1, 2), scale = FALSE)
 
# Scale by vector of values
cat("\nScale by vector of values:\n")
scale(mt, center = FALSE, scale = c(1, 2))


Output:

Matrix:
     [, 1] [, 2]
[1, ]    1    6
[2, ]    2    7
[3, ]    3    8
[4, ]    4    9
[5, ]    5   10

Scale center by vector of values:
     [, 1] [, 2]
[1, ]    0    4
[2, ]    1    5
[3, ]    2    6
[4, ]    3    7
[5, ]    4    8
attr(, "scaled:center")
[1] 1 2

Scale by vector of values:
     [, 1] [, 2]
[1, ]    1  3.0
[2, ]    2  3.5
[3, ]    3  4.0
[4, ]    4  4.5
[5, ]    5  5.0
attr(, "scaled:scale")
[1] 1 2

Example :

R




# Create a matrix
x <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 2)
 
# Scale the matrix
y <- scale(x)
 
# Print the scaled matrix
y


output :

           [,1]       [,2]       [,3]
[1,] -0.7071068 -0.7071068 -0.7071068
[2,]  0.7071068  0.7071068  0.7071068
attr(,"scaled:center")
[1] 1.5 3.5 5.5
attr(,"scaled:scale")
[1] 0.7071068 0.7071068 0.7071068


Last Updated : 11 Apr, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads