R语言中scale函数的用法
中心化,所有项减去平均数
1、
> dat <- c(3, 6, 4, 8) > dat [1] 3 6 4 8 > mean(dat) [1] 5.2 > dat - mean(dat) ## 所有项减去平均值, 中心化 [1] -2.25 0.75 -1.25 2.75 > scale(dat, center = T, scale = F) ## scale函数实现中心化 [,1] [1,] -2.25 [2,] 0.75 [3,] -1.25 [4,] 2.75 attr(,"scaled:center") [1] 5.2
2、标准化01
所有项除以均方根。(均方根指的是:求所有项的平方和的平均数, 然后开平方)
> dat <- c(3, 6, 4, 8) > dat [1] 3 6 4 8 > sqrt(sum(dat^2)/(length(dat) - 1)) ## 求均方根 [1] 6.5 > dat / sqrt(sum(dat^2)/(length(dat) - 1)) ## 标准化01 [1] 0.46 0.93 0.62 1.24 > scale(dat, center = F, scale = T) ## scale函数实现标准化01 [,1] [1,] 0.46 [2,] 0.93 [3,] 0.62 [4,] 1.24 attr(,"scaled:scale") [1] 6.5
3、标准化02
所有项减去平均数, 然后除以标准差,得到均值为0, 标准差为1的一组数据。
> dat <- c(3, 6, 4, 8) > dat [1] 3 6 4 8 > mean(dat) [1] 5.2 > (dat - (mean(dat)))/sd(dat) ## 所有项减去平均数,然后除以标准差 [1] -1.01 0.34 -0.56 1.24 > scale(dat, center = T, scale = T) ## scale函数实现标准化02 [,1] [1,] -1.01 [2,] 0.34 [3,] -0.56 [4,] 1.24 attr(,"scaled:center") [1] 5.2 attr(,"scaled:scale") [1] 2.2