我是靠谱客的博主 舒适戒指,这篇文章主要介绍R语言中 scale函数用法,现在分享给大家,希望可以做个参考。

scale() 函数

1. 用法

复制代码
1
2
3
4
5
6
7
scale(x, center = TRUE, scale = TRUE) # x 是样本数据 (r语言中定义为 数字矩阵) # center 中心化(这里指的是减去样本数据x的平均值) # scale 标准化 (这里指的是除以样本数据x的方差或者均方根)

备注: 之前一直听别人说scale(标准化)是除以什么根方差 ,不太懂,所以自己就验证了一下。
结论1: 在同时使用center =T 和 scale =T 的情况下,scale用的值是方差
结论2: 在只使用center =F 和 scale =T, scale用的值是根方差

复制代码
1
2
3
# 根方差的计算 sqrt(sum(x^2)/(n-1)) # x是数据样本, n 是数据样本的数量

2.举列

只中心化,不标准化的验证:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
attach(mtcars) a = mtcars[1:5,]$gear # 以r语言中内置的mtcars为例子 > a [1] 4 4 4 3 3 > mean(a) # 求平均值 [1] 3.6 > sd(a) # 求方差 [1] 0.5477226 > scale(a,center = T,scale = F) # 只中心化,不标准化 [,1] [1,] 0.4 [2,] 0.4 [3,] 0.4 [4,] -0.6 [5,] -0.6 attr(,"scaled:center") [1] 3.6
复制代码
1
2
3
4
5
6
7
> a - mean(a) # 只中心化验证 [1] 0.4 0.4 0.4 -0.6 -0.6

只标准化, 不中心化的验证:

复制代码
1
2
3
4
5
6
7
8
9
10
11
> scale(a,center = F,scale = T) # 只标准化, 不中心化 [,1] [1,] 0.9847319 [2,] 0.9847319 [3,] 0.9847319 [4,] 0.7385489 [5,] 0.7385489 attr(,"scaled:scale") [1] 4.062019
复制代码
1
2
3
4
5
6
7
8
# 这里的scale值是4.062019,而方差是0.5477226,所以不是除以方差,而是根方差 > a/4.062019 [1] 0.984732 0.984732 0.984732 0.738549 0.738549 # 根方差的计算 > scale_num = sqrt(sum(a^2)/(length(a)-1)) > scale_num [1] 4.062019

既标准化,也中心化的验证:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
> scale(a,center = T,scale = T) # 既标准化,也中心化 [,1] [1,] 0.7302967 [2,] 0.7302967 [3,] 0.7302967 [4,] -1.0954451 [5,] -1.0954451 attr(,"scaled:center") [1] 3.6 attr(,"scaled:scale") [1] 0.5477226 > (a - mean(a))/sd(a) [1] 0.7302967 0.7302967 0.7302967 -1.0954451 -1.0954451

最后

以上就是舒适戒指最近收集整理的关于R语言中 scale函数用法的全部内容,更多相关R语言中内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部