scale() 函数

1. 用法

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用的值是根方差

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

2.举列

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

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
> a - mean(a)        # 只中心化验证
[1]  0.4  0.4  0.4 -0.6 -0.6

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

> 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
# 这里的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

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

> 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函数用法相关推荐

  1. r语言中c函数错误,R语言中c()函数与paste()函数的区别说明

    c()函数:将括号中的元素连接起来,并不创建向量 paste()函数:连接括号中的元素 例如 c(1, 2:4),结果为1 2 3 4 paste(1, 2:4),结果为"1 2" ...

  2. r语言中paste函数_R中的paste()函数-简要指南

    r语言中paste函数 Using the paste() function in R will be straight and simple. In this tutorial let's see ...

  3. R语言中dim函数_R语言--向量化计算(apply族函数)

    R语言最优秀的是它的向量化编程,这其中apply族函数扮演了非常重要的角色.apply族函数是由apply.sapply.lapply.mapply.tapply等函数组成的.熟练使用apply族函数 ...

  4. -R语言中%in%函数的用法

    R语言由一个个基础函数组成,熟练灵活应用这些基础函数,有助于我们更好的学习R包及编程,这个专栏可能很多人不感兴趣,但是对提升自己很有帮助,感兴趣的朋友一起来学习.今天我们来介绍一下%in%函数的用法, ...

  5. C语言assign方法,R语言中assign函数和get函数的用法

    assign函数在循环时候,给变量赋值,算是比较方便 1.给变量赋值 for (i in 1:(length(rowSeq)-1)){ assign(paste("nginx_server_ ...

  6. R语言中seq函数的用法

    seq(from,to,length), 该函数的意思是生成一组数字,从from开始,到to结束,每两个数间的间隔是length,如 seq(2,10,2),会生成一组数:2 4 6 8 10 seq ...

  7. R语言中var的用法

    var()是R语言中用于计算样本方差的函数.用法如下: var(x, na.rm = FALSE, use = "everything") 其中: x:一个数值型的向量. na.r ...

  8. R语言中dim函数_R语言 常见函数知识点梳理与解析 | 精选分析

    目 录 1.str() 显示数据集和变量类型,并简要展示数据集情况 2.subset()  取子集 3.which.min(), which.max()和which() 4.pmin( )/ pmax ...

  9. c 如何加函数锁linux,Linux下C语言中fcntl函数用法说明

    本文最后更新于2017年8月18日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢! =Start= 缘由: 学习.提高需要 正文: 参考解答: fcntl – manipulate f ...

最新文章

  1. 用户体验思考之UI面试
  2. Howto: (Almost) Everything In Active Directory via C#
  3. linux-dns的安装
  4. 美团点评APP在移动网络性能优化的实践,通用流行框架大全
  5. C#快速找出磁盘内的所有文件
  6. Java订单交易_Java实现获取105发卡平台的订单信息
  7. 升序输出三个数_C语言入门经典例题:求100~999的水仙花数
  8. 配置iSCSI部署网络存储
  9. 「leetcode」90.子集II【回溯算法】详细图解!
  10. 第二次发布 - 轻剑傲风的RSS简易阅读器改装版。
  11. PJSIP添加G729编码
  12. matlab中的kron函数
  13. 如何实现网站访问量统计(html页面)
  14. 32、Java高级特性——日期操作类、Date类、SimpleDateFormat类、Calendar类
  15. bcdedit添加linux引导,用BCDEdit编辑启动菜单
  16. 通过docker安装zabbix5.0分布式监控系统
  17. Spinner的setOnItemSelectedListener(
  18. 批量将多个文件夹整理合并到一个文件夹中
  19. 随机数rand和srand的用法
  20. aspnetdb.mdb数据库介绍

热门文章

  1. 海思IVE遮挡报警算法(OD)
  2. 锐捷商通v6数据库服务器位置,锐捷商通软件v6怎么设置自动提醒库存不足
  3. NIPS 2017 深度学习论文集锦 (5) 含部分代码
  4. CSS控制连续英文字母和数字强制换行
  5. 分享一个抖音刷视频的python代码
  6. 11月2日 迅雷白金会员vip账号分享 91freevip 18:00更新
  7. connection error mysql_MySQL数据库之Dr.Elephant mysql connection error
  8. 寒假,打包回家喽~给诸位拜个早年~
  9. 卡耐基经典口才训练八种法
  10. 2021商务风新年工作计划工作总结通用PPT模板