基于R语言的数据标准化处理脚本

Python012

基于R语言的数据标准化处理脚本,第1张

基于R语言的数据标准化处理脚本

数据标准化(Normalization)

将数据按比例缩放,使之落入一个小的特定区间。去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。

数据标准化处理主要包括数据同趋化处理和无量纲化处理两个方面。

数据同趋化处理主要解决不同性质数据问题,对不同性质指标直接加总不能正确反映不同作用力的综合结果,须先考虑改变逆指标数据性质,使所有指标对测评方案的作用力同趋化,再加总才能得出正确结果。

数据无量纲化处理主要解决数据的可比性。数据标准化的方法有很多种,常用的有“最小—最大标准化”、“Z-score标准化”和“按小数定标标准化”等。经过上述标准化处理,原始数据均转换为无量纲化指标测评值,即各指标值都处于同一个数量级别上,可以进行综合测评分析。

min-max标准化(Min-max normalization)

也叫离差标准化,是对原始数据的线性变换,使结果落在[0,1]区间,转换函数如下:

正向指标:(x-min)/(max-min)

负向指标:(max-x)/(max-min)

其中max为样本数据的最大值,min为样本数据的最小值。这种方法有一个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。

R语言实现

# 标准化处理

min.max.norm <- function(x){

((x-min(x))/(max(x)-min(x)))

} #正向指标

max.min.norm <- function(x){

((max(x)-x)/(max(x)-min(x)))

} #负向指标

data_1 <- apply(data[,-c(3,4)],2,min.max.norm) #正向指标处理

data_2 <- apply(data[,c(3,4)],2,max.min.norm) #负向指标处理

#注意array只能用在二维及以上

data_t <- cbind(data_1,data_2)

试试这个package:birk,这是他的介绍: It currently includes a unit of measurement conversion function and a few simple arithmetic functions。

我大概看了一下这个package,发现它有很多单位的转换,比如长度,角度,热量,你感兴趣的重量,温度,速度,容积等等单位转换。

比如1磅转化为多少克:conv_unit(1, lb, g)

很好用吧~觉得好请采纳我。

不慢。

数据标准化,将数据按比例缩放,使之落入一个小的特定区间。去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。

所有R的函数和数据集是保存在程序包里面的。只有当一个包被载入时,它的内容才可以被访问。