# R - scale() Function

The R scale() function which centers and scales the columns of a numeric matrix.

The value of center determines how column centering is performed. If center is a numeric-alike vector with length equal to the number of columns of x, then each column of x has the corresponding value from center subtracted from it. If center is TRUE then centering is done by subtracting the column means (omitting NAs) of x from their corresponding columns, and if center is FALSE, no centering is done.

The value of scale determines how column scaling is performed (after centering). If scale is a numeric-alike vector with length equal to the number of columns of x, then each column of x is divided by the corresponding value from scale. If scale is TRUE then scaling is done by dividing the (centered) columns of x by their standard deviations if center is TRUE, and the root mean square otherwise. If scale is FALSE, no scaling is done.

### Syntax

```scale(x, center = TRUE, scale = TRUE)
```

### Parameters

 `x` `Required. `Specify a numeric matrix(like object). `center` `Optional. `Specify either a logical value or numeric-alike vector of length equal to the number of columns of x. `scale` `Optional. `Specify either a logical value or a numeric-alike vector of length equal to the number of columns of x.

### Return Value

Returns the centered, scaled matrix.

### Example:

The example below shows the usage of scale() function.

```mat <- matrix(1:9, nrow=3)

cat("The matrix contains:\n")
print(mat)

#scale matrix with default arguments
cat("\nscale matrix with default arguments:\n")
print(scale(mat))
```

The output of the above code will be:

```The matrix contains:
[,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9

scale matrix with default arguments:
[,1] [,2] [,3]
[1,]   -1   -1   -1
[2,]    0    0    0
[3,]    1    1    1
attr(,"scaled:center")
 2 5 8
attr(,"scaled:scale")
 1 1 1
```

### Example:

Consider one more example where center and scale parameters are used.

```mat <- matrix(1:9, nrow=3)

cat("The matrix contains:\n")
print(mat)

#scale center by vector of values
cat("\nscale center by vector of values:\n")
print(scale(mat, center=c(1, 2, 3), scale=FALSE))

#scale by vector of values
cat("\nscale by vector of values:\n")
print(scale(mat, center=FALSE, scale=c(1, 2, 3)))
```

The output of the above code will be:

```The matrix contains:
[,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9

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

scale by vector of values:
[,1] [,2]     [,3]
[1,]    1  2.0 2.333333
[2,]    2  2.5 2.666667
[3,]    3  3.0 3.000000
attr(,"scaled:scale")
 1 2 3
```

❮ R Statistical Functions

5