R语言 如何对R数据框架的某一列进行标准化

R语言 如何对R数据框架的某一列进行标准化

一个大的数据集有多个不同范围和单位的列,在进一步处理之前可能需要进行标准化处理。在这篇文章中,我们将讨论如何在R编程语言中对数据框架的某一列进行标准化。

让我们先讨论一下标准化问题。标准化是一种特征缩放技术。它是一个重新调整数据比例的过程,使数据的 平均值 为 “0”, 标准差 为 “1”。

公式

如何对R数据框架的某一列进行标准化?

这里,\bar{x}   是平均值,\sigma   是标准差。我们从观察中的每个值中减去平均值,然后除以标准差。这也被称为Z-score公式。

例子 :

编号 姓名 年龄 CGPA
1. A 15 5.0
2. B 16 4.0
3. C 20 5.0
4. D 19 2.0
5. E 19 1.0
6. F 17 3.0

在这个数据集中,我们把学生姓名、年龄和CGPA作为列名。由于年龄在15到20之间,CGPA在1.0到5.0之间。我们希望将CGPA和年龄列标准化。因此,我们的数据集应该是这样的。

编号 姓名 年龄 CGPA
1. A -1.3561270 1.0206207
2. B -0.8475794 0.4082483
3. C 1.1866111 1.0206207
4. D 0.6780635 -0.8164966
5. E 0.6780635 -1.4288690
6. F -0.3390318 -0.2041241

方法1:使用scale函数

R有一个内置的函数叫scale(),用于标准化的目的。

语法: scale(x,center=True,scale=True)

这里, “x”代表你想应用标准化的数据列/数据集。 “center”参数采用布尔值,当它被设置为True时,它将从观察值中减去平均值。 “scale “参数采用布尔值,当它被设置为True时,它将用标准差除掉所得的差值。

方法

  • 创建数据集
  • 在数据列上应用scale函数
  • 将向量结果转换为数据框
  • 显示结果

程序

# Creating Dataset
X <- c('A','B','C','D','E','F')
Y <- c(15,16,20,19,19,17)
Z <- c(5.0,4.0,5.0,2.0,1.0,3.0)
  
dataframe <- data.frame(Name = X, Age = Y, CGPA = Z )
  
# applying scale function
dataframe[2 : 3] <- as.data.frame(scale(dataframe[2 : 3]))
  
# displaying result
dataframe

输出

如何对R数据框架的某一列进行标准化?

使用规模

方法2:使用基数R

方法

  • 创建数据集。
  • 创建一个用于标准化的函数。

语法: standardize = function(x){ z <- (x – mean(x))/ sd(x) return( z)}

  • 将此函数应用于数据列。
  • 将向量结果转换为数据框
  • 显示结果

程序

# Creating Dataset
X <- c('A', 'B', 'C', 'D', 'E', 'F')
Y <- c(15, 16, 20, 19, 19, 17)
Z <- c(5.0, 4.0, 5.0, 2.0, 1.0, 3.0)
  
dataframe <- data.frame(Name = X, Age = Y, CGPA = Z )
  
# creating Standardization function
standardize = function(x){
  z <- (x - mean(x)) / sd(x)
  return( z)
}
  
# apply your function to the dataset
dataframe[2:3] <-
  apply(dataframe[2:3], 2, standardize)
  
#displaying result
dataframe

输出

如何对R数据框架的某一列进行标准化?

使用自定义标准化功能

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程