天天看點

R語言中的scale函數

scale函數是将一組數進行處理,預設情況下是将一組數的每個數都減去這組數的平均值後再除以這組數的均方根。

其中有兩個參數,center=TRUE,預設的,是将一組數中每個數減去平均值,若為false,則不減平均值;

                            scale=TRUE:預設的,是将一組數中每個數除以均方根(

R語言中的scale函數

)并不是均方根,而是為了計算方差而設計的一個類似樣本方差的東西,是以計算你說的均方根的時候,并不是/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