R中数据的标准化0-1标准化

数据标准化,是将数据按比例缩放,使之落入到特定区间,一般我们使用0-1标准化;

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

>data <- read.csv('1.csv', fileEncoding='utf-8')
> data
   class   name score
1   一班 朱志斌   120
2   一班   朱凤   122
3   一班 郑丽萍   140
4   一班 郭杰明   131
5   一班   许杰   122
6   二班   郑芬   119
7   二班   林龙    96
8   二班 林良坤   135
9   二班 黄志红   105
10  三班 方小明   114
11  三班 陈丽灵   115
12  三班 方伟君   136
13  三班 庄艺家   119
> data.scale <- (data$score-min(data$score))/(max(data$score)-min(data$score))
> newData <- data.frame(data, data.scale)
> newData
   class   name score data.scale
1   一班 朱志斌   120  0.5454545
2   一班   朱凤   122  0.5909091
3   一班 郑丽萍   140  1.0000000
4   一班 郭杰明   131  0.7954545
5   一班   许杰   122  0.5909091
6   二班   郑芬   119  0.5227273
7   二班   林龙    96  0.0000000
8   二班 林良坤   135  0.8863636
9   二班 黄志红   105  0.2045455
10  三班 方小明   114  0.4090909
11  三班 陈丽灵   115  0.4318182
12  三班 方伟君   136  0.9090909
13  三班 庄艺家   119  0.5227273


注意scale( )标准化函数跟0-1标准化的区别。标准化的方法很多,根据实际数据分析需求进行选择。

> scale<-scale(data$score)  
> scale  
            [,1]  
 [1,] -0.0865256  
 [2,]  0.0741648  
 [3,]  1.5203783  
 [4,]  0.7972716  
 [5,]  0.0741648  
 [6,] -0.1668708  
 [7,] -2.0148103  
 [8,]  1.1186523  
 [9,] -1.2917035  
[10,] -0.5685968  
[11,] -0.4882516  
[12,]  1.1989975  
[13,] -0.1668708  
attr(,"scaled:center")  
[1] 121.0769  
attr(,"scaled:scale")  
[1] 12.44629  
> View(data)  
> mean(data$score)  
[1] 121.0769  
> sd(data$score)  
[1] 12.44629  

你可能感兴趣的:(R数据分析篇,R语言,数据标准化,0-1标准化)