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

 

posted @ 2022-05-08 13:05  小鲨鱼2018  阅读(665)  评论(0编辑  收藏  举报