7个实验:R语言环境安装、R语言包的安装、创建和使用R语言数据集、数据的导入导出、R语言数据的清洗、高级数据管理、基本统计分析和函数与包实验(←其实是两个实验)内容较长!
本实验是在我同学做的云平台上运行的,所以背景色为黑色,仅外表看起来有些不同而已!
实验一 R语言环境安装
【实验题目】
实验一 R语言环境安装
【实验目的】
【实验内容与实现】
1. R的安装
2. RStudio的安装
3. 查看工作空间,更改工作空间。
【实验心得】
通过本次实验我熟练地掌握了R GUI和RStudio的下载安装,熟悉了R GUI和RStudio主界面的组成及作用,并学会查看工作空间,更改工作空间,受益良多。
实验二 R语言包的安装
【实验目的】
【实验内容与实现】
实验三 创建和使用R语言数据集
【实验目的】
【实验内容与实现】
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. 矩阵与数组。
(1)创建一个4*5的数组如图,创建一个索引矩阵如图,用这个索引矩阵访问数组,观察结果。
3. 将之前的state,数组,矩阵合在一起创建一个长度为3的列表。
4. 创建一个数据框如图。
5. 将这个数据框按照mpg列进行排序。
6. 访问数据框中drat列值为3.90的数据。
实验四 数据的导入导出
【实验目的】
【实验内容与实现】
1. 创建一个csv文件(内容自定),并用readtable函数导入该文件。
2. 查看R语言自带的数据集airquality(纽约1973年5-9月每日空气质量)。
3. 列出airquality的前十列,并将这前十列保存到air中。
4. 任选三个列,查看airquality中列的对象类型。
5. 使用names查看airquality数据集中各列的名称
6. 将air这个数据框导出为csv格式文件。(write.table (x, file ="", sep ="", row.names =TRUE, col.names =TRUE, quote =TRUE))
实验五 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 的类型,并将其转化为 date 型,格式为 年/月/日。
3. 使用 subset()根据 Temp 列获取 air 中 Temp 大于 60 小于 70 的数据。
4. 将 air 中含有缺失值的列去掉。
5. 找出 Temp 中大于 85 的值将其设置为缺失值。
6. 创建一个数据框 air1 包含两个列 q1,q2。用 cbind 函数添加到 air 中。
7. 使用 names 函数查看 air 的列名,并根据列自己创建一个数据框。使用 rbind 函数添加到 air 中
实验六 高级数据管理
【实验目的】
【实验内容与实现】
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)使用scale()将Math,Science,English,中心化标准化。
(2)通过函数mean()来计算各行的均值以获得综合得分,并使用函数 cbind()将其添加到roster中
(3)使用quantile函数按20%,40%,60%,80%,求分位数。
(4)使用变量重命名的方法将grade列分为A、B、C、D、F几个等级。
(5)使用strsplit 函数将Student列的名字分割,存到name中。
(6)创建一个函数x1,功能为实现返回值为传入参数的第一个值。
(7)使用sapply 函数将name中的firstname提取出来。(“sapply(data,function)”)同理即可提取出lastname。
(8)将lastname和firstname与roster合并,同时去掉roster的第一列。
(9)将成绩单用姓和名进行排序,将roster显示。
实验七 基本统计分析实验、函数与包实验
【实验目的】
1. 学会使用 summary 函数来计算统计量。
2. 使用 table 函数生成一维、二维、多维列联表。
3. 学会用 R 实现卡方独立性检验。
4. 学会用 R 进行相关性的度量。
5. 学会用 R 进行 Pearson、Spearman 和 Kendall 相关。
6. 学会用 R 进行相关性的显著性检验。
7. 学会用 R 进行组间差异的非参数检验。
【实验内容与实现】
1. 描述性统计分析
(1)对 R 自带的数据集 rock(48 块石头的形态数据)使用summary 函数、pastecs 包中的 stats.desc 函数计算描述性统计量。
(2)分别使用 aggregate 和 doby 中的 summaryBy 对 sleep数据集的 group 列分组获取 extra 列的平均值。
2. 频数表和列联表
(1)加载vcd 包中的Arthritis 数据集使用 table 生成 Sex列的频数统计表。
(2)分别使用table、xtabs对Arthritis的Treatment(行)、Imporved(列)列生成二维列联表。并使用 addmargins为这些表格添加边际和。
(3)使用 xtabs 生成三维列联表(根据 Treatment(行) 、sex(列) 、Improved 三个因子) 。
(4) 使用 chisq.testhan()函数对二维表的行和列进行卡方独立性检验,并观察他们是否独立。
5) 使用 vcd 包中的 assocstats()函数计算二维列联表的phi 系数、列联系数和 Cramer’s V 系数。
3. 相关
(1)Pearson、Spearman 和 Kendall 相关
a) 获取 state.x77 的前 10 行储存到 states 中。
b) 对 states 数据集计算方差和协方差、Pearson 积差相关系数、Spearman 等级相关系数。
c) 使用 psych 包中的 corr.test 对 states 数据集Illiteracy、Murder 计算相关显著性检验
4. T 检验
(1) 比较南方(group 1)和非南方(group 0)各州的监禁概率(使用 MASS 包中的 t.test 独立样本的 t 检验,So为是否为南方,Prob表示监禁率,数据集为UScrime)。
实验八 基本统计分析实验、函数与包实验
【实验题目】
基本统计分析实验、函数与包实验
【实验目的】
掌握基本的统计分分析方法和函数进行程序设计。
【实验内容与实现】
1. 输入一个成绩,如果大于等于90,则输出“优”;如果大于等于80且小于90,则输出“良”,如果大于等于70且小于80,则输出“中”;如果大于等于60且小于70,则输出“及格”;如果小于60,则输出“不及格”。
2. 求前n个元素的斐波那契数列。
3. 请用sample()函数来模拟随机抽样的过程,其调用格式为 sample(x,size,replace=FALSE,prob=NULL) 其中:
x:向量,表示抽样的总体
size:非负整数,表示样本的容量
replace:逻辑变量,取值为TRUE时,表示放回抽样;取值为FALSE(默认时),表示不放回抽样
prob:数值向量,与x的长度相同,表示x中各元素出现的概率
请用sample()函数模拟掷硬币实验和贝努利实验
4. 有一批蔬菜种子的原来的平均发芽率为p=0.85,现在随机抽取500粒,用种衣剂进行浸种处理,结果有445粒发芽,请用二项分布的总体检验结果说明种衣剂有无效果。
说明:在R中,二项分布的总体检验可以通过binom.test()函数实现,其使用格式如下:
binom.test(x,n,p=0.5,alternative=c(“two.side”,”less”,”greater”),conf.level=0.95) 其中:
x:表示
n:表示试验总数
p:表示原假设,默认概率为0.5
alternative:指定检验的方式,alternative=two.side表示进行双边检验,alternative=less表示进行备择假设为小于的检验alternative=greater表示进行备择假设为大于的检验。
conf.level:指定置信水平。
5. 按照以往经验,新生儿染色体异常率一般为1%。某医院观察了当地400名新生儿,有一例染色体异常,请用二项分布总体检验说明该地区新生儿染色体是否低于一般水平?