如何标准化一列 R DataFrame ?
在进一步处理之前,可能需要对具有不同范围和单位的多列的大型数据集进行标准化。在本文中,我们将讨论如何在 R 编程语言中标准化一列数据框。
让我们首先讨论标准化。标准化是一种特征缩放技术。这是重新调整数据的过程,使数据的平均值为“0”,标准差为“1”。
公式:
这里, 是平均的并且是标准差。我们从观察中的每个值中减去平均值,然后除以标准差。这也称为 Z 分数公式。
例子 : Name Age 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 和年龄列。所以,我们的数据集应该是这样的: Name Age 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
方法一:使用Scale函数。
R 有一个名为 scale() 的内置函数,用于标准化。
Syntax: scale(x,center=True,scale=True)
此处, “x”表示要对其应用标准化的数据列/数据集。 “center”参数采用布尔值,当它设置为 True 时,它将从观察值中减去平均值。 “scale”参数采用布尔值,当它设置为 True 时,它将结果差异除以标准偏差。
方法:
- 创建数据集
- 对数据列应用缩放函数
- 将矢量结果转换为数据框
- 显示结果
程序:
R
# 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
# 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
输出:
方法 2:使用基础 R
方法:
- 创建数据集。
- 创建标准化函数。
Syntax: 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
输出: