资源描述
R语言试验指导书(二)
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 ="", row.names =TRUE, col.names =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, stringsAsFactors = 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提取出来。(“sapply(data,function)”)同理即可提取出lastname。
6) 将lastname和firstname和roster合并,同时去掉roster第一列。
7) 将成绩单用姓和名进行排序。
三、 试验要求
要求学生学会部分简单数值和字符处理函数。学会怎样自己创建一个函数。和对部分简单问题处理。
试验七 基础统计分析试验
一、 试验目标
1. 学会使用summary函数和Hmisc包中describe函数来计算统计量。
2. 使用table函数生成一维、二维、多维列联表。
3. 学会用R实现卡方独立性检验。
4. 学会用R进行相关性度量。
5. 学会用R进行Pearson、Spearman和Kendall相关。
6. 学会用R进行相关性显著性检验。
7. 学会用R进行组间差异非参数检验。
二、 试验内容
1. 描述性统计分析
1) 对R自带数据集rock(48块石头形态数据)使用summary函数、Himisc包中describe函数、pastecs包中stats.desc函数计算描述性统计量。
2) 使用aggregate、doby中summaryBy对sleep数据集group列分组获取描述性统计量。
2. 频数表和列联表
1) 加载vcd包中Arthritis数据集使用table生成简单频数统计表。
2) 使用table、xtabs对Arthritis生成二维列联表。并使用addmargins为这些表格添加边际和(依据Treatment、Improved)。
3) 使用xtabs,table生成三维列联表(依据Treatment、sex、Improved三个因子)。
4) 使用chisq.testhan()函数对二维表行和列进行卡方独立性检验,并观察她们是否独立。
5) 使用vcd包中assocstats()函数计算二维列联表phi系数、列联络数和Cramer’s V系数。
3. 相关
1) Pearson、Spearman和Kendall相关
a) 对state.x77数据集计算方差和协方差、Pearson积差相关系数、Spearman等级相关系数。
b) 使用psych包中corr.test对state.x77数据集Illiteracy、Murder因子计算相关显著性检验
4. T检验
1) 比较了南方(group 1)和非南 方(group 0)各州监禁概率(使用MASS包中t.test独立样本t检验,So因子为是否为南方,Prob因子表示监禁率)。
5. 组间差异非参数检验。
1) 使用Mann–Whitney U检验回复4中相关监禁率问题,。
三、 试验要求
经过此次试验让学生学会基础统计分析用到频数表、列联表、相关、t检验、组间差异分参数检验。让学生能够掌握部分基础统计分析概念和怎样用R来进行统计分析。
展开阅读全文