商务服务
《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/ , 查看更多   
最新新闻
百度识图怎么用(百度识图功能好用吗)(百度产品大全)
识图搜索提供两种图片输入方式,用户可以上传本地图片或者输入网络图片的URL地址,将图片传给搜索引擎之后,百度识图将会自动识
更多资讯行业资讯
从合资到自主,从数量到质量,中国汽车产业的整体水平和中国人的生活水平同步提高的同时,也发生着深刻的变化。乘着产业发展的东
忻州关键词seo优化排名
百度关键词搜索排名系统优化的方法:中,选择错误的的关键词、合理使用标题和描述、内部链接优化系统、外部链接360优化、关键词密
springboot整合百度AI的图片和文字违规识别
1.用户注册登录:用户进行注册,登录。2.商品浏览:以列表方式显示商品信息或者可以查看商品。3.商品搜索:用户可以通过关键字或
谁还在用百度搜索?
文/周音微软必应超越百度,成为中国桌面搜索第一大引擎。曾经的百度搜索,跌落王座。这是一家美国数据统计机构发布的中国桌面搜
锚定「AI向实」,百度研究院发布2023年十大科技趋势
机器之心报道机器之心编辑部过去四年,智能技术构筑起了科技变革的主线,AI 向实,成为当今时代科技发展的主干道。—— 百度首席
百度新闻史诗级大调整
作者|奇袭来源|品牌公关实验室继2017年3月宣布取消新闻源库后,百度新闻在2023年年中迎来了历史上最大规模的新闻收录展示调整
盘点:14款免费的关键词研究工具
选好关键词对于卖家来说至关重要,本文盘点了一些免费的关键词工具。以下是14种不同的免费关键词研究工具的清单,可以帮助卖家找
韩文翻译器拍照扫一扫
微信使用更方便:1、微信搜索小程序“ 拍照翻译精灵 ”不仅仅是翻译,是一个功能多样的小程序 :拍照翻译、拍照提取文字、拍照识
手机百度 10.3.8 For iphone
华军软件园频道,为您提供手机百度iPhone版下载、手机百度苹果版下载。手机百度iPhone版来自全世界最大的中文搜索引擎百度的iPho