1、 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,
2、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数据。 三、 试验要求 要求学生熟练掌握向量、矩阵、数据框、列表、
3、因子创建和使用。 试验四 数据导入导出 一、 试验目标 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
4、table (x, file ="", sep ="", row.names =TRUE, col.names =TRUE, quote =TRUE)) 三、 试验要求 要求学生掌握从包中读取数据,导入csv文件数据,并学会将文件导出。 试验五 R语言数据清洗 一、 试验目标 1. 查看数据集缺失值,并学会对缺失值进行处理。 2. 对异常变量重新赋值。 3. 将某一列字符型转化为日期型。 4. 利用subset()获取子集。 二、 试验内容 1. 有一个数据框代码以下,使用summary函数查看,那一列含有缺失值,有多个。并查看wind列最大值。 Ozone <-
5、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, stringsAsFact
6、ors = 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获取子集,学会对缺失值进行部分简单处理和对部分异常值查找和修改。 试验六
7、 高级数据管理 一、 试验目标 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 <-
8、 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. 将成绩单
9、根据姓和名进行排序,将学生各科考试成绩组合为单一成绩衡量指标、基于相对名次(前 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
10、和firstname和roster合并,同时去掉roster第一列。 7) 将成绩单用姓和名进行排序。 三、 试验要求 要求学生学会部分简单数值和字符处理函数。学会怎样自己创建一个函数。和对部分简单问题处理。 试验七 基础统计分析试验 一、 试验目标 1. 学会使用summary函数和Hmisc包中describe函数来计算统计量。 2. 使用table函数生成一维、二维、多维列联表。 3. 学会用R实现卡方独立性检验。 4. 学会用R进行相关性度量。 5. 学会用R进行Pearson、Spearman和Kendall相关。 6. 学会用R进行相关性显著性检验。 7
11、 学会用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为这些表格添加边际和(依据T
12、reatment、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来进行统计分析。






