如何在 r 中仅缩放数字列(示例)


您可以使用dplyr包中的以下语法仅缩放 R 中数据框的数字列:

 library (dplyr)

df %>% mutate(across(where(is. numeric ), scale))

下面的例子展示了如何在实际中使用这个功能。

示例:使用 dplyr 仅缩放数字列

假设我们在 R 中有以下数据框,其中包含有关各种篮球运动员的信息:

 #create data frame
df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'),
                 dots=c(22, 34, 30, 12, 18),
                 assists=c(7, 9, 9, 12, 14),
                 rebounds=c(5, 10, 10, 8, 8))

#view data frame
df

  team points assists rebounds
1 to 22 7 5
2 B 34 9 10
3 C 30 9 10
4 D 12 12 8
5 E 18 14 8

假设我们想使用 R 中的缩放函数来仅缩放数据框的数字列。

我们可以使用以下语法来做到这一点:

 library (dplyr)

#scale only the numeric columns in the data frame
df %>% mutate(across(where(is. numeric ), scale))

  team points assists rebounds
1 A -0.1348400 -1.153200 -1.56144012
2 B 1.2135598 -0.432450 0.87831007
3 C 0.7640932 -0.432450 0.87831007
4 D -1.2585064 0.648675 -0.09759001
5 E -0.5843065 1.369425 -0.09759001

请注意,三个数值列(得分助攻篮板)中的值进行了缩放,而球队列保持不变。

技术说明

R 中的scale()函数使用以下基本语法:

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

金子:

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

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

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

金子:

  • 原始x :原始x值
  • : 样本平均值
  • s :样本的标准差

这也称为数据标准化,它只是将每个原始值转换为z 分数

其他资源

以下教程解释了如何使用 dplyr 执行其他常见任务:

如何使用 dplyr 按名称选择列
如何使用 dplyr 按索引选择列
如何在 dplyr 中将 select_if 与多个条件一起使用

添加评论

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