如何在 r 中使用scale()函数(附示例)
R中的scale()函数可用于缩放向量、矩阵或数据框中的值。
该函数使用以下基本语法:
scale(x, center = TRUE , scale = TRUE )
金子:
- x :要缩放的对象的名称
- center :缩放时是否减去均值。默认值为 TRUE。
- scale :缩放时是否除以标准差。默认值为 TRUE。
该函数使用以下公式来计算缩放值:
缩放后的x = (原始x – x̄) / s
金子:
- 原始x :原始x值
- x̄ : 样本平均值
- s :样本的标准差
这也称为数据标准化,它只是将每个原始值转换为z 分数。
以下示例展示了如何在实践中使用此功能。
示例 1:缩放向量中的值
假设我们在 R 中有以下值向量:
#define vector of values x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9) #view mean and standard deviation of values mean(x) [1] 5 sd(x) [1] 2.738613
下面的代码展示了如何使用scale()函数缩放向量值:
#scale the values of x x_scaled <- scale(x) #view scaled values x_scaled [,1] [1,] -1.4605935 [2,] -1.0954451 [3,] -0.7302967 [4,] -0.3651484 [5,] 0.0000000 [6,] 0.3651484 [7,] 0.7302967 [8,] 1.0954451 [9,] 1.4605935
以下是每个缩放值的计算方式:
- 值 1:(1 – 5) / 2.738613 = -1.46
- 值 2:(2 – 5) / 2.738613 = -1.09
- 值 3:(3 – 5) / 2.738613 = -0.73
等等。
请注意,如果我们指定scale=FALSE ,那么该函数在缩放时不会除以标准差:
#scale the values of x but don't divide by standard deviation x_scaled <- scale(x, scale = FALSE ) #view scaled values x_scaled [,1] [1,] -4 [2,] -3 [3,] -2 [4,] -1 [5,] 0 [6,] 1 [7,] 2 [8,] 3 [9,] 4
以下是每个缩放值的计算方式:
- 值 1:1 – 5 = -4
- 值 2:2 – 5 = -3
- 值 3:3 – 5 = -2
等等。
示例2:缩放数据框中的列值
大多数情况下,当我们想要缩放数据框中多列的值以使每列的平均值为 0、标准差为 1 时,我们会使用scale()函数。
例如,假设我们在 R 中有以下数据框:
#create data frame df <- data. frame (x=c(1, 2, 3, 4, 5, 6, 7, 8, 9), y=c(10, 20, 30, 40, 50, 60, 70, 80, 90)) #view data frame df xy 1 1 10 2 2 20 3 3 30 4 4 40 5 5 50 6 6 60 7 7 70 8 8 80 9 9 90
注意,y变量的取值范围远大于x变量的取值范围。
我们可以使用scale()函数对两列中的值进行缩放,使得x和y的缩放后的值均值为0,标准差为1:
#scale values in each column of data frame df_scaled <- scale(df) #view scaled data frame df_scaled xy [1,] -1.4605935 -1.4605935 [2,] -1.0954451 -1.0954451 [3,] -0.7302967 -0.7302967 [4,] -0.3651484 -0.3651484 [5,] 0.0000000 0.0000000 [6,] 0.3651484 0.3651484 [7,] 0.7302967 0.7302967 [8,] 1.0954451 1.0954451 [9,] 1.4605935 1.4605935
x 和 y 列现在的平均值为 0,标准差为 1。
其他资源
以下教程解释了如何在 R 中执行其他常见操作: