商务服务
《R语言实战》day5 高级数据管理
2024-11-26 06:57

 数学和统计函数

《R语言实战》day5 高级数据管理

 字符处理函数

 循环和条件执行

 自编函数

 数据整合与重塑

 

 数据标准化

默认情况下函数scale()对矩阵或数据框的指定列进行均值为0、标准差为1的标准化

 

要对每一列进行任意均值和标准差的标准化,可以使用如下的代码

 

其中的M是想要的均值,SD为想要的标准差。

要对指定列而不是整个矩阵或数据框进行标准化,你可以使用这样的代码

 

此句将变量myvar标准化为均值50、标准差为10的变量。

 

1. 设定随机数种子

        在每次生成伪随机数的时候,函数都会使用一个不同的种子,因此也会产生不同的结果。你 可以通过函数set.seed()显式指定这个种子,让结果可以重现(reproducible)。代码清单5-2给 出了一个示例。这里的函数runif()用来生成0到1区间上服从均匀分布的伪随机数。

通过手动设定种子,就可以重现你的结果了。这种能力有助于我们创建会在未来取用的,以 及可与他人分享的示例。

例子

 

2. 生成多元正态数据

 

其中n是你想要的样本大小,mean为均值向量,而sigma是方差协方差矩阵(或相关矩阵)。

从一个参数如下所示的三元正态分布中抽取500个观测

 

注意大小写!MASS与mass不一样 

正则表达式

请注意,函数grep()、sub()和strsplit()能够

搜索某个文本字符串(fixed=TRUE

某个正则表达式(fixed=FALSE,默认值为FALSE)。

转义字符

表示新行, 为制表符' 为单引号,b为退格

键入?Quotes以了解更多

 

换行之后还退了一格,是通过b. 做到的

例子:将函数应用于数据对象

 

函数mean()求得的是 矩阵中全部12个元素的均值。

但如果希望求的是各行的均值或各列的均值呢R中提供了一个apply()函数,可将一个任意函数“应用”到矩阵、数组、数据框的任何维 度上。

apply()函数的使用格式为

 

x为数据对象,MARGIN是维度的下标,FUN是由你指定的函数,而...则包括了任何想传 递给FUN的参数。

在矩阵或数据框中MARGIN=1表示行,MARGIN=2表示列。

 

FUN可为任意R函数,这也包括你自行编写的函数(参见5.4节,所以apply()是一种很强 大的机制。

apply()可把函数应用到数组的某个维度

lapply()和sapply()则可将函数 应用到列表(list上。

 
  • 函数quantile()给出了学生综合得分的百分位数。可以看到,成绩为A的分界点为 0.74,B的分界点为0.44,等等。
  • 通过使用逻辑运算符你可以将学生的百分位数排名重编码为一个新的类别型成绩 变量。下面在数据框roster中创建了变量grade。

你将使用函数strsplit()以空格为界把学生姓名拆分为姓氏和名字。把 strsplit()应用到一个字符串组成的向量上会返回一个列表

  • 你可以使用函数sapply()提取列表中每个成分的第一个元素,放入一个储存名字 的向量Firstname,并提取每个成分的第二个元素,放入一个储存姓氏的向量Lastname
  • 你将使用cbind()把它们添加到花名册中。由于已经不再需要student变量,可以将其丢弃(在下标中使用–1)。

概念

 语句(statement)是一条单独的R语句或一组复合语句(包含在花括号{ }中的一组R 语句,使用分号分隔

 条件(cond)是一条最终被解析为真(TRUE)或假(FALSE)的表达式

 表达式(expr)是一条数值或字符串的求值语句

 序列(seq)是一个数值或字符串序列。

1. for结构

for循环重复地执行一个语句,直到某个变量的值不再包含在序列seq中为止。

语法为: for (var in seq) statement

2. while结构

while循环重复地执行一个语句,直到条件不为真为止。

语法为: while (cond) statement

在处理大数据集中的行和列时,R中的循环可能比较低效费时。只要可能,最好联用R中的 内建数值/字符处理函数和apply族函数。

1. if-else结构

控制结构if-else在某个给定条件为真时执行语句。也可以同时在条件为假时执行另外的语 句。

语法为

if (cond) statement

if (cond) statement1 else statement2

2. ifelse结构

ifelse结构是if-else结构比较紧凑的向量化版本,其语法为: ifelse(cond, statement1, statement2)

3. switch结构

switch根据一个表达式的值选择语句执行。语法为switch(expr, ...) 其中的...表示与expr的各种可能输出值绑定的语句。

例子

 

5.5 用户自编函数

一个函数的结构看起来大致如此:函数中的对象只在函数内部使用。返回对象的数据类型是任意的,从标量到列表皆可。

 

一个由用户编写的描述性统计量计算函数

 

例子

 

 结果函数cat()仅会在输入的日期格式类型不匹配"long"或"short"时执行。使用一个表达式来捕获用户的错误输入的参数值通常来说是一个好主意。

注意

用来为函数添加错误捕获和纠正功能。你可以使用

函数warning()来生成一 条错误提示信息

message()来生成一条诊断信息

stop()停止当前表达式的执行并提 示错误。 

在创建好自己的函数以后,你可能希望在每个会话中都能直接使用它们。附录B描述了如何 定制R环境,以使R启动时自动读取用户编写的函数。我们将在第6章和第8章中看到更多的用户 自编函数示例

整合:将多组观测替换为根据这些观测计算的描述性统计量

重塑:通过修改数据的 结构(行和列)来决定数据的组织方式

使用函数t()即可 对一个矩阵或数据框进行转置。对于后者,行名将成为变量(列)名。

其中x是待折叠的数据对象,by是一个变量名组成的列表,这些变量将被去掉以形成新的观测, 而FUN则是用来计算描述性统计量的标量函数,它将被用来计算新观测中的值。

在R中使用一个或多个by变量和一个预先定义好的函数来折叠(collapse)数据

例子:将车子的数据按cyl和gear聚合,计算均值

 

大致说来,你需要首先将数据融合(melt,以使每一行都是唯一的标识符变量组合。然后 将数据重铸(cast)为你想要的任何形状。在重铸过程中,你可以使用任何函数对数据进行整合。

1.融合:melt)将它重构为这样一种格式:每个测量变量独占一行,行中带有要唯一确定这 个测量所需的标识符变量

 

注意,必须指定要唯一确定每个测量所需的变量(ID和Time,而表示测量变量名的变量(X1 或X2)将由程序为你自动创建。

2. 重铸:dcast:读取已融合的数据并使用你提供的公式和一个(可选的)用于整合数据的函 数将其重塑

 

 其中的md为已融合的数据,formula描述了想要的最后结果,而fun.aggregate是(可选 的)数据整合函数。

 结果

  • 由于右侧(d、e和f)的公式中并未包括某个函数,所以数据仅被重塑了
  • 反之,左侧的示例(a、b和c)中指定了mean作为整合函数,从而就对数据同时进行了重塑与整合。
    • 例如,示例 (a)中给出了每个观测所有时刻中在X1和X2上的均值
    • 示例(b)则给出了X1和X2在时刻1和时刻2 的均值,对不同的观测进行了平均
    • 在(c)中则是每个观测在时刻1和时刻2的均值,对不同的X1 和X2进行了平均。
    以上就是本篇文章【《R语言实战》day5 高级数据管理】的全部内容了,欢迎阅览 ! 文章地址:http://lanlanwork.gawce.com/news/10273.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 阁恬下移动站 http://lanlanwork.gawce.com/mobile/ , 查看更多   
最新新闻
健康消费加速向“新” 市场前景广阔
近年来,我国居民健康意识明显增强,健康消费潜力巨大,呈现出市场规模快速增长、业态模式不断创新、消费结构持续优化等特点。健
scratch编程少儿版电脑版 1.5.8官方版scratch手机版下载「scratch编程少儿版电脑版 1.5.8官方版」
scratch编程少儿版电脑版是一款专门针对广大青少年儿童推出的教育类编程软件。scratch编程少儿版电脑版采用Html5页面技术和JS语
【慎入女性手机「【慎入」
                ♛研青专属,他人使用请留言【半夜,空调开着,你躺在床上裹紧被子翻看着手机,时不时笑几声,突然一
从脚步声到“吱吱盒”,拟音师的孤独与热爱|影视
文|财新 邓舒方拟音棚内部分道具。图:受访者提供随着《哪吒之魔童闹海》热映,拟音师这一幕后职业也逐渐走进大众视野。曾参与
波杰抢戏詹库对决:28+8+8三分连创新高 末节决胜三分价值千金
北京时间4月4日,勇士以123-116击败湖人拿到四连胜。这场比赛波杰姆斯基抢戏了VS大小王之战,波杰上半场22分最高,全场比赛28分+
上市险企推动业务结构转型:分红险占比提升助力降低刚性负债成本
随着保险行业步入转型期,上市险企纷纷调整业务结构,大力推动分红险业务发展。根据最新数据,2025年以来,保险行业新备案的185
笔记本热点手机连不上一直正在连接-笔记本开热点手机连不上电脑连不上手机热点怎么回事「笔记本热点手机连不上一直正在连接-笔记本开热点手机连不上」
嗨,朋友们好!今天给各位分享的是关于笔记本开热点手机连不上的详细解答内容,本文将提供全面的知识点,希望能够帮到你!3、可
华为手机有电自动关机是怎么回事华为手机自动关机「华为手机有电自动关机是怎么回事」
山和水不是反义词。“山”的意思:1、地面形成的高耸的部分:土山。2、形状像山的:山墙(人字形房屋两侧的墙壁。亦称“房山”)
如何免费获取Windows10激活密钥?Win10统用激活码推荐 附激活工具windows10手机版「如何免费获取Windows10激活密钥?Win10统用激活码推荐 附激活工具」
Windows10专业版/企业版激活密钥/神key分享!win10专业版和企业版都不是免费使用的,需要我们使用产品密钥来激活,如果没有激活
计算机硬盘内存不足,电脑提示磁盘空间不足怎么办手机磁盘空间不足怎么清理「计算机硬盘内存不足,电脑提示磁盘空间不足怎么办」
使用电脑偶尔会遇到“磁盘空间不足”的提示,导致我们无法继续安装或运行程序,那么电脑提示磁盘空间不足怎么办呢?