R语言实验指导书(二)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
R语言实验指导书(二)
2016年10月27日
实验三创建和使用R语言数据集
一、实验目的:
1.了解R语言中的数据结构。
2.熟练掌握他们的创建方法,和函数中一些参数的使用。
3.对创建的数据结构进行,排序、查找、删除等简单的操作。
二、实验内容:
1.向量的创建及因子的创建和查看
有一份来自澳大利亚所有州和行政区的20个税务会计师的信息样本 1 以及他们各自所在地的州名。州名为:tas, sa, qld, nsw, nsw, nt, wa, wa, qld, vic, nsw, vic, qld, qld, sa, tas, sa, nt, wa, vic。
1)将这些州名以字符串的形式保存在state当中。
2)创建一个为这个向量创建一个因子statef。
3)使用levels函数查看因子的水平。
2.矩阵与数组。
i.创建一个4*5的数组如图,创建一个索引矩阵如图,用这个索引矩
阵访问数组,观察结果。
3.将之前的state,数组,矩阵合在一起创建一个长度为3的列表。
4.创建一个数据框如图。
5.将这个数据框按照mpg列进行排序。
6.访问数据框中drat列值为3.90的数据。
三、实验要求
要求学生熟练掌握向量、矩阵、数据框、列表、因子的创建和使用。
实验四数据的导入导出
一、实验目的
1.熟练掌握从一些包中读取数据。
2.熟练掌握csv文件的导入。
3.创建一个数据框,并导出为csv格式。
二、实验内容
1.创建一个csv文件(内容自定),并用readtable函数导入该文件。
2.查看R语言自带的数据集airquality(纽约1973年5-9月每日空气质
量)。
3.列出airquality的前十列,并将这前十列保存到air中。
4.查看airquality中列的对象类型。
5.查看airquality数据集中各成分的名称
6.将air这个数据框导出为csv格式文件。(write.table (x, file ="", sep
="", s =TRUE, s =TRUE, quote =TRUE))
三、实验要求
要求学生掌握从包中读取数据,导入csv文件的数据,并学会将文件导出。
实验五 R语言数据的清洗
一、实验目的
1.查看数据集的缺失值,并学会对缺失值进行处理。
2.对异常变量重新赋值。
3.将某一列的字符型转化为日期型。
4.利用subset()获取子集。
二、实验内容
1.有一个数据框代码如下,使用summary函数查看,那一列含有缺失值,
有几个。并查看wind列的最大值。
Ozone <- c(41, 36, 12, 18, NA, 28)
Solar.R <- c(190, 118, 149, 313, NA, NA)
wind <- c(7.4, 8.0, 12.6, 11.5, 14.3, 14.9)
Temp <- c(67, 82, 74, 62, 86, 66)
date <- c("1997/05/01","1997/05/02","1997/05/03","1997/05/04",
"1997/05/05","1997/05/06")
air <- data.frame(date,Ozone,Solar.R,wind,Temp, stringsAsFacto
rs = FALSE)
2.使用class()函数查看date函数的类型,并将其转化为data型,格
式为月/日/年。
3.使用subset()根据Temp列获取air中Temp大于60小于70的数据。
4.将air中含有缺失值的列去掉。
5.找出Temp中大于85的值将其设置为缺失值。
6.创建一个air1包含两个列q1,q2。用cbind函数添加到air中。
7.使用names函数查看air的列名,并根据列自己创建一个数据框。使用
rbind函数添加到air中
三、实验要求
要求学生会用subset获取子集,学会对缺失值进行一些简单的处理和对一些异常值的查找和修改。
实验六高级数据管理
一、实验目的
1.学会简单的数值和字符处理函数。
2.学会自己编写一个函数。
二、实验内容
1.使用下面代码创建roster数据集。
Student <- c("John Davis", "Angela Williams",
"Bullwinkle Moose", "David Jones",
"Janice Markhammer", "Cheryl Cushing",
"Reuven Ytzrhak", "Greg Knox", "Joel England",
"Mary Rayburn")
Math <- c(502, 600, 412, 358, 495, 512, 410, 625, 573, 522)
Science <- c(95, 99, 80, 82, 75, 85, 80, 95, 89, 86)
English <- c(25, 22, 18, 15, 20, 28, 15, 30, 27, 18)
roster <- data.frame(Student, Math, Science, English,
stringsAsFactors=FALSE)
2.使用length函数查看Student的长度。
3.计算该班级数学的平均成绩,最高成绩。
4.将成绩单按照姓和名进行排序,将学生的各科考试成绩组合为单一的成
绩衡量指标、基于相对名次(前 20%,下20%,等等)给出从A到F的
评分。
1)使用quantile函数按20%,40%,60%,80%,求分位数。
2)使用变量重命名的方法将grade列分为A、B、C、D、F几个等
级。
3)使用strsplit 函数将Student列的名字分割,存到name中。
4)创建一个函数x1,功能为实现返回值为传入参数的第一个值。
5)使用sapply 函数将name中的firstname提取出来。(“sap
ply(data,function)”)同理即可提取出lastname。
6)将lastname和firstname与roster合并,同时去掉roster
的第一列。
7)将成绩单用姓和名进行排序。
三、实验要求
要求学生学会一些简单的数值和字符处理函数。学会如何自己创建一个函数。和对一些简单问题的处理。