scale函數是将一組數進行處理,預設情況下是将一組數的每個數都減去這組數的平均值後再除以這組數的均方根。
其中有兩個參數,center=TRUE,預設的,是将一組數中每個數減去平均值,若為false,則不減平均值;
scale=TRUE:預設的,是将一組數中每個數除以均方根(
)并不是均方根,而是為了計算方差而設計的一個類似樣本方差的東西,是以計算你說的均方根的時候,并不是/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