如何在 r 中使用scale()函数(附示例)


R中的scale()函数可用于缩放向量、矩阵或数据框中的值。

该函数使用以下基本语法:

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

金子:

  • x :要缩放的对象的名称
  • center :缩放时是否减去均值。默认值为 TRUE。
  • scale :缩放时是否除以标准差。默认值为 TRUE。

该函数使用以下公式来计算缩放值:

缩放后的x = (原始x – x̄) / s

金子:

  • 原始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 中执行其他常见操作:

如何在 R 中标准化数据
如何在 R 中标准化数据
如何在 R 中对列进行平均

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注