R语言中的scale函数


scale函数是将一组数进行处理,默认情况下是将一组数的每个数都减去这组数的平均值后再除以这组数的均方根。

其中有两个参数,center=TRUE,默认的,是将一组数中每个数减去平均值,若为false,则不减平均值;

                            scale=TRUE:默认的,是将一组数中每个数除以均方根(x_{\mathrm{rms}}并不是均方根,而是为了计算方差而设计的一个类似样本方差的东西,所以计算你说的均方根的时候,并不是/n,而是/(n-1)。

 ss<-c(1,2,3,4,5,3,2)

 

默认情况下:将一组数的每个数都减去这组数的平均值后再除以这组数的均方根。
> scale(ss)
          [,1]
[1,] -1.3805850
[2,] -0.6371931
[3,]  0.1061988
[4,]  0.8495908
[5,]  1.5929827
[6,]  0.1061988
[7,] -0.6371931
attr(,"scaled:center")
[1] 2.857143
attr(,"scaled:scale")
[1] 1.345185

直接减去均值,没有除以均方根:

> scale(ss,scale=FALSE)
          [,1]
[1,] -1.8571429
[2,] -0.8571429
[3,]  0.1428571
[4,]  1.1428571
[5,]  2.1428571
[6,]  0.1428571
[7,] -0.8571429
attr(,"scaled:center")
[1] 2.857143

没有减去均值,直接除以均方根:

> scale(ss,center=FALSE)
         [,1]
[1,] 0.2970443
[2,] 0.5940885
[3,] 0.8911328
[4,] 1.1881771
[5,] 1.4852213
[6,] 0.8911328
[7,] 0.5940885
attr(,"scaled:scale")
[1] 3.366502

猜你喜欢

转载自blog.csdn.net/weixin_39541558/article/details/80054229