中国高校课件下载中心 》 教学资源 》 大学文库

《R语言》课程教学资源(PPT课件)第07章 数据处理与描述性统计

文档信息
资源类别:文库
文档格式:PPTX
文档页数:40
文件大小:126.87KB
团购合买:点击进入团购
内容简介
1. 掌握apply函数族的应用 2. 掌握如何对清理过的数据进行处理 3. 学会利用R语言对数据做描述性统计
刷新页面文档预览

第7章 数据处理与 描述 性统计

本章学习目标 1. 掌握apply函数族的应用 2. 掌握如何对清理过的数据进行处理 3. 学会利用R语言对数据做描述性统计

7.1 apply( )函数族 1. apply( )函数 (P 141) 2. lapply( )函数 (P144) 3. sapply( )函数 (P145) 4. vapply( )函数 (P147) 5. mapply( )函数 (P147) 6. tapply( )函数 (P148) 7. rapply( )函数 (P149) 8. eapply( )函数 (P150)

7.1 apply函数族 1. apply( )函数(P141) apply( )函数是apply函数族中的核心函数,在R语言中通常会使用apply( )函数代替for循环。 apply( )函数①可以对矩阵、数据框、数组,按行或列进行循环计算;②可以对子元素进行迭 代;③可以把子元素以参数的形式传到自定义的函数中;④可以返回自定义函数的计算结果。 函数语法格式: apply(X, MARGIN, FUN, .) 参数列表: ➢ X:数组、矩阵、数据框等目标数据。 ➢ MARGIN:按行计算或按按列计算,1表示按行,2表示按列。 ➢ FUN:自定义函数。 ➢ .:更多参数

# 创建data.frame > x x x x1 x2 1 5 1 2 5 2 3 5 3 4 5 4 5 5 5 6 5 6 #自定义函数my_fun( )对x1列加1并计算均值, 第一个参数x为数据,第二、三个参数为自定义 参数。 my_fun apply(x,1, my_fun,c1='x1',c2=c('x1','x2')) [,1] [,2] [,3] [,4] [,5] [,6] [1,] 6 6.0 6 6.0 6 6.0 [2,] 3 3.5 4 4.5 5 5.5 注意: 这个例子用for循环也可以完成,但是耗损的时间比较多

7.1 apply函数族 2. lapply( )函数 (P144) lapply( )函数是循环操作函数之一,用来对list类型、data.frame类型数据集进行循环,并 返回和X长度同样的list结构作为结果数据集,它和apply( )函数表面上的区别是以字母“l” 开头,就可以判断lapply( )函数和apply( )函数主要区别在于返回结果数据集的类型。 函数语法格式: lapply(X, FUN, .) 参数列表: ① X:list类型、data.frame类型的数据集合。 ② FUN:自定义函数。 ③ .:更多参数

# 构建一个list数据集x,分别包括a,b,c三个key值。 > x x $a [1] 1 2 3 4 5 6 7 8 9 10 $b [1] 4.685836 4.294409 6.631830 8.219388 10.430921 8.434207 $c [1] TRUE FALSE FALSE TRUE FALSE 【例7-1】计算list中的每个key对应的数据的分位数。(P144) 7.1 apply函数族 # 分别计算每个KEY对应该的数据的分位数。 > lapply(x,quantile) $a 0% 25% 50% 75% 100% 1.00 3.25 5.50 7.75 10.00 $b 0% 25% 50% 75% 100% 4.294409 5.172334 7.425609 8.380503 10.430921 $c 0% 25% 50% 75% 100% 0 0 0 1 1

> x lapply(data.frame(x), sum) $x1 [1] 30 $x2 [1] 21 【例7-2】对数据框的列求和。 7.1 apply函数族 注意: 优点:lapply( )函数可以很方便地把list数据集进行循 环操作,lapply( )函数还可以用于对data.frame数据 集按列进行循环操作。 不足:但它不能像apply( )函数那样对向量或矩阵对 象进行循环操作

7.1 apply函数族 3. sapply( )函数(P145) sapply( )函数与lapply( )函数作用相似,sapply( )函数只是在lapply( )函数的基础上增加了 simplify参数和USE.NAMES参数,主要就是优化了输出。Sapply( )函数在simplify参数和 USE.NAMES参数都使用默认值的时候返回值为向量,这是和lapply( )函数的最大区别。 函数语法格式: sapply(X, FUN, ., simplify=TRUE, USE.NAMES = TRUE) 参数列表: ① X:数组、矩阵、数据框。 ② FUN:自定义函数。 ③ .:更多参数。 ④ Simplify:是否数组化,默认值是TRUE,可以设置FALSE关闭数组化。比较特别的是它还 有一个值是“array”,如果参数值设置为“array”,输出结果按数组进行分组。 ⑤ USE.NAMES:默认值是TRUE,如果X的内容为字符串,那么如果没有名字就用X的内容 中的字符传来命名,如果设置为FALSE则不去命名

> x sapply(x, sum) [1] 5 5 5 5 5 5 1 2 3 4 5 6 # 对数据框计算 > sapply(data.frame(x), sum) x1 x2 30 21 # 检查结果类型,来取定sapply( )函数返回类型为向量,而 lapply( )函数返回类型为list > class(lapply(x, sum)) # 列表 [1] “list” > class(sapply(x, sum)) # 数值向量 [1] “numeric” 【例7-3】使用sapply( )函数来完成矩阵,数据框的计算需求。 7.1 apply函数族 注意: 如果simplify=FALSE和USE.NAMES=FALSE,即simplify 参数和USE.NAMES参数不使用默认值,那么sapply( ) 函数就和lapply( )函数一样了。 > lapply(data.frame(x) , sum) > sapply(data.frame(x), sum, simplify=F , USE.NAMES = F) # 返回类型都是列表!

刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档