




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、R语言入门,2,什么是R?,R是一种统计绘图语言,也指实现该语言的软件。,The R Project for Statistical Computing,3,为什么要学会R?,SPSS(Statistical Package for the Social Sciences)的发明者诺曼奈伊(Norman Nie)说: “没有什么统计概念是R不能表现的。,5,R简 史,R语言是从S统计绘图语言演变而来,可看作S的方言。 S语言上世纪70年代诞生于贝尔实验室,由约翰钱伯斯(John Chambers)开发。 基于S语言开发的商业软件Splus,可以方便的编写函数、建立模型,具有良好的扩展性,在国外
2、学术界应用很广,对SPSS和 SAS有力冲击。 1995年由新西兰Auckland大学统计系的罗斯艾卡(Ross Ihaka)和罗伯特简特曼(Robert Gentleman),基于S语言的源代码,编写了一能执行S语言的软件,并将该软件的源代码全部公开,这就是R软件,其命令统称为R语言。,R 的起源,Robert Gentleman,Ross Ihaka,自1997年以后,有一个核心团队,这一团队能对 R 的源代码进行修改。,7,R的优点,多领域的统计资源 目前在R网站上约有8230个程序包,涵盖了基础统计学、社会学、经济学、生态学、空间分析、系统发育分析、生物信息学等诸多方面。 免费开源 统
3、计分析能力突出 作图功能强大 拓展与开发能力强,8,R的缺点,用户需要对命令熟悉 与代码打交道,需要记住常用命令。 帮助系统均为英文 占用内存 所有的数据处理在内存中进行,不适于处理超大规模的数据。 运行速度稍慢 即时编译,约相当于C语言的1/20。,如何学习R?,熟悉语法 训练思维 善于求助 熟能生巧 保持兴趣,Never too late and too old to learn R ,10,R软件首页 /,11,Windows下载和安装R,下载完成后,双击R-3.2.4-win.exe 开始安装。 一直点击下一步,各选项默认,语言建议选英文。
4、,12,图 4 R登陆界面(Windows版) 路径: 开始所有程序R 3.2.4,菜单栏,快捷按钮,控制台,光标:等待输入,13,R图形界面:Rstudio,Rstudio是R的图形界面之一,可以让 R 语言代码更直观、明了地运行。 RStudio 同样 是 免费 和 开源 的 ,可以在网站上自由下载与使用( 安装Rstudio 双击Rstudio-0.98.501.exe 开始安装。,RStudio 有以下几大优点:,代码字体高亮,代码完整性智能识别、自动缩进; 可直接执行 R 程序代码; 可运行多个 R 程序; 可直接浏览工作表和数据; 可随意缩放绘制的图形,并且有多种输出格式; 整合
5、R 帮助和 R 使用文档; 可查看 R 命令的运行记录。,15,17,R程序包(R Packages),程序包是什么? R程序包是多个函数的集合,具有详细的说明和示例。 Window下的R程序包是经过编译的zip包。 每个程序包包含R函数、数据、帮助文件、描述文件等。 为什么要安装程序包? R程序包是R功能扩展,特定的分析功能,需要用相应的程序包实现。 例如:系统发育分析,常用到ape程序包,群落生态学vegan包等。,18,install.views(Environmetrics),19,三种平台上的程序包,20,R程序包,在CRAN 提供了每个包的源代码和编译好的程序包 以vegan包为例
6、,CRAN提供了: Package source: vegan_1.17-2.tar.gz MacOS X binary: vegan_1.17-2.tgz Windows binary: vegan_1.17-2.zip Reference manual: vegan.pdf Window下程序包为zip文件,安装时不要解压缩。,21,安装程序包的方法,1 菜单安装 在联网的条件下,按菜单栏【程序包】下拉选择【安装程序包】 ,选 择所需的程序包进行实时安装; 2 联网命令安装 例如: 要安装vegan包,在控制台中输入 install.packages(vegan) 3 本地安装 路径:Pa
7、ckagesinstall packages from local files 选择本地磁盘上存储zip包的文件夹。 4 脚本安装 在联网的条件下,请运行Rpackages.install.R程序,即可完成本培训所需的程序包安装。,22,程序包使用与更新,程序包的中函数,都要先导入,再使用,因此导入程序包是第一步。 在控制台中输入如下命令: library(lattice) library(ggplot2) 所有程序包的更新 update.packages() 注意:R 命令对大小写敏感,因此使用命令方式安装和载入程序包时应特别注意。,23,查看程序包帮助文件,vegan 程序包内部都有哪些函
8、数?分别有什么功能? 查询程序包内容最常用的方法: 1 菜单 帮助Html帮助 2 查看pdf帮助文档,24,查看函数的帮助文件,函数的默认值是什么? 怎么使用? 使用时需要注意什么问题? 需要查询函数的帮助。 1 ?t.test 2 RGuiHelpHtml help 3 apropos(t.test) 4 help(t.test) 5 help.search(t.test) 6 查看R包pdf手册,25,26,帮助文件的内容,t.teststats #函数名及所在包 Fitting Linear Models #标题 Description #函数描述 Usage #默认选项 Argume
9、nts #参数 Details #详情 Author(s) #作者 References #参考文献 Examples #举例,27,练习一 安装R并导入程序包,1. 安装R和Rstudio软件、熟悉菜单 2. 本地安装程序包: vegan 3. 调用程序包,查看程序包的帮助 library(vegan) 查找vegan包中cca函数的帮助 输入 ?cca (试试?cca) 将其中的Example粘贴到控制台中,查看运行的结果。,R数据集创建,数据创建 向量,数组,矩阵,数据框,列表,因子 数据输入 scan(),csv文件,excel文件,sas数据 数据存储 write.table(),
10、write.csv(), save(),向量vector,概念:用于存储数值型、字符型或逻辑型数据的一维数组。 例子: a - c(1, 2, 5, 3, 6, -2, 4) # 数值型向量 b - c(one, two, three) # 字符型向量 c - c(TRUE, TRUE, TRUE) # 逻辑型向量 注意:单个向量中的数据必须是相同的类型(数值型、字符型或逻辑型)。,创建重复的向量, rep(2:5, 2) # 等价于 rep(2:5, times = 2) 1 2 3 4 5 2 3 4 5 rep(2:5, rep(2, 4) 1 2 2 3 3 4 4 5 5 rep(1
11、:3, times = 4, each = 2) 1 1 1 2 2 3 3 1 1 2 2 3 3 1 1 2 2 3 3 1 1 2 2 3 3 paste(c(X,Y), 1:10, sep = -) #不规则 1 X-1 Y-2 X-3 Y-4 X-5 Y-6 X-7 Y-8 X-9 Y-10 rep(factor(LETTERS1:3), 5) 1 A B C A B C A B C A B C A B C Levels: A B C,向量中元素的访问,a a3 1 5 # 向量 a 中第一、三、五个数据 ac(1, 3, 5) 1 1 5 6 # 向量 a 中第二到第六个数据 a2
12、:6 1 2 5 3 6 -2,# 向量 a 中数值大于 3 的所有数据 aa3 1 5 6 4 # 去掉第一个值 a-1 1 2 5 3 6 -2 4 # 去掉前三个值 a-1:-3 1 3 6 -2 4,矩阵matrix,概念:一个二维数组 #创建一个 22 的矩阵 matrix(1:4, nrow = 2, ncol = 2) ,1 ,2 1, 1 3 2, 2 4 # 生成单位阵 diag(3) ,1 ,2 ,3 1, 1 0 0 2, 0 1 0 3, 0 0 1,mat1-matrix(1:12,3,4, byrow=T) mat2-matrix(1:12,3,4, byrow=F
13、),矩阵子集(元素)的提取, x x2,2 # 第二行、第 2 列的元素 1 4 x2, # 第二行的所有元素 1 2 4 6 x ,2 # 第 2 列的所有元素 1 3 4 x2, c(2, 3) # 第二行中第 2、3 列的元素 1 4 6,数据框data frame,使用函数 data.frame( )创建: mydata patientID age diabetes status patientdata patientdata1:2 # 第 1、2 列的所有元素 patientdata$age # $符合用于选取一个指定的变量。,列表list,R 数据类型中最为复杂的一种数据结构。 列
14、表就是包含任何类型的对象,可以是若干向量、矩阵、数据框,甚至其他列表的组合。 通过函数 list( )来创建: mylist g h j k mylist - list(title = g, ages = h, j, k),因子factor,概念:是一种向量对象,它给自己的组件指定了一个离散的分类(分组),它的组件由其他等长的向量组成。 用函数 factor( )创建一个因子,levels 按序(字母序或数值序)排列。 #为 province 创建因子 province pf pf 1 四川 湖南 江苏 四川 四川 四川 湖南 江苏 湖南 江苏 Levels: 湖南 江苏 四川,数据的输入,1
15、 键盘输入 mydata - data.frame(age = numeric(0), gender = character(0), weight = numeric(0) ) mydata - edit(mydata) # 输入或修改 mydata 中的数据 2 使用 scan()函数 mydata - scan( file = ex.data, what = list(, 0, 0 ) #将压缩型数据读入一个向量或列表 3 导入 csv 文件 mydata2 - read.table( file = D:/dbh.csv, header = T, sep = , ) mydata3 - r
16、ead.csv( file = D:/dbh.csv, header = T) 4 网络中读取表格或csv文件 tbl-read.csv( tbl2-read.table(ftp:/,5 导入 Excel 数据 library(RODBC) channel - odbcConnectExcel( d:/test.xls ) mydata - sqlFetch( channel, Sheet1 ) channel2 - odbcConnectExcel2007( d:/test.xlsx ) mydata2 - sqlFetch( channel, Sheet1 ) 6 导入 SAS 数据 li
17、brary(foreign) mydata - read.sas( d:/test.ssd ) library(Hmisc) data - sas.get( D:/test.ssd ) 7 导入 SPSS 数据 library(foreign) mydata - read.spss( d:/test.sav ),2.3 数据的存储, df write.table( df , file = D:/Rdata/fg.txt, s = F, quote = F ) # s = F :不写入行名,quote = F :变量名不用双引号。 (2) 保存为 csv 文件 w
18、rite.csv( df , file = D:/Rdata/fg.csv ) (3) 保存为 R 格式文件 save( df , file = D:/Rdata/fg.Rdata ),R数据操作,变量创建与删除 变量重命名 缺失值 数据类型转化 数据排序 数据合并,数据子集提取 数据重构 常用函数 数据探索 常见循环 自编函数,变量创建与删除,mydata - data.frame( x1 = c(2, 2, 6, 4), x2 = c(3, 4, 2, 8) ) # 方法一 mydata$sum - mydata$x1 + mydata$x2 mydata$mean - (mydata$x
19、1 + mydata$x2)/2 # 方法二 mydata - transform( mydata, sum = x1 + x2, mean = (x1 + x2)/2 ) # 变量删除 mydata$ mean - NULL,变量的重命名,df - mydata 第一种方法:调用编辑器重命名 fix(df) 第二种方法:使用函数 names( )重命名 names(df) names(df)1:3 - c(A, B, C),缺失值的处理,缺失值:NA (Not Available,不可用) 不可能出现的值:NaN(Not a Number,非数值) 函数 is.na()可检测缺失值是否存在。
20、 例子 x - c(1:3, 5,7, NA, 9) sum(x) # 结果为 NA sum( x, na.rm = T ) # 结果为 27,数据类型的转换,数据转换例子,Rep - c( 1:6 ) # Rep 赋值 is.numeric(Rep) # 数值型判断:真 is.factor(Rep) # 因子判断:假 Rep - as.factor(Rep) # 转换为因子 is.factor(Rep) # 因子判断:真,数据的排序,R 自带的 order( )函数 plyr 程序包的 arrange( )函数 # 按 x1,x2先后依次排序 # R 自带的 order( )排序 df or
21、der(-df$x1,df$x2), #plyr 程序包的 arrange( )函数排序 library(plyr) arrange( df, -x1, x2),排序例子,# 创建数据框 df - data.frame (id = 1:4, weight = c(20, 27, 24, 22), size = c(small, large, medium, large) # id weight size # 1 20 small # 2 27 large # 3 24 medium # 4 22 large,# R 自带的 order( )函数 dforder(df$weight), dfor
22、der(df$size,df$weight), dforder(df$size,-df$weight), # plyr 包的 arrange( )函数 library(plyr) arrange(df, weight) arrange(df, size, weight) arrange(df, size, -weight),排序例子(非同一数据框),有两列数据在一个数据框dataAB1小明2小王3小李4小张现输入一列数gg2143,要求显示出AB2小王1小明4小张3小李 答案: dataorder(gg),数据集的合并,列合并 # 共有变量: ID total - merge(dataA, d
23、ataB, by = ID) #解释见代码 # 共有变量: ID、Country total - merge(dataA, dataB, by = c(ID, Country) #含有一样的行数,而且以相同顺序排序。 total - cbind(dataA, dataB),列合并例子,# 创建数据框 dataA dataA - read.table( header = T, text = storyid title 1 lions 2 tigers 3 bears ),# 创建数据框 dataB dataB - read.table( header = T, text = subject st
24、oryid rating 1 1 6.7 1 2 4.5 2 2 3.3 2 1 5.2 ),# 合并数据框 dataA, dataB merge(dataA, dataB, storyid) # 将 dataA 的 stroyid 重命名为 id colnames(dataA)1 - c(Id) merge(x = dataA, y = dataB, by.x = id, by.y = storyid),现在有某一地区的植物名录表格gao.csv, 表格内只有两列,分别为中文名和name , 现在有中国IUCN植物红色名录数据库表格chinaIUCN.csv(表格内只有两列,分别为濒危等级l
25、evel和species )。我们需要通过匹配两个表格获得该地区植物的IUCN评估等级表。 aa - read.csv(chinaIUCN.csv) sp - read.csv(gao.csv) bb - merge(aa, sp, by.x = species, by.y =name, all.y = T) head(bb) write.csv(bb,gaoIUCN.csv),列合并的案例分析,行合并,total - rbind(dataA, dataB) 注意:dataA 与 dataB 需含有一样的变量,但排列的顺序可以不同。,行合并例子,dfA - data.frame( Subjec
26、t = c(1, 1, 2, 2), Response = c(X, X, X, X) ) dfB - data.frame( Subject = c(1, 2, 3), Response = c(Z, Y, Z) ) df - rbind(dfA, dfB) dfA$Coder - A dfB$Coder - B df - rbind(dfA, dfB),数据子集的提取,3.7.1 根据位置选取子集 使用方法如下: dfm1, 表示返回第 m1 行的数据 dfc(m1,m2,. ,mj), 表示返回由第 m1,m2,.mj 行组成的数据框 df ,n1 表示返回第 n1 列的数据 df ,c(n1,n2,. ,nk) 表示返回由第 n1,n2,.nk 列组成的数据框,例子,# 创建数据框 df - read.table( header = T, text = subject sex size 1 M 7 2 F 6 3 F 9 4 M 11 ),# 以行取子集 df1, dfc(1,3), # 以列取子集 df ,1 df ,c(1,3) # 以行列组合取子集 dfc(1,3), c(1,3),根据列名选取子集,使用方法如下: df, name1 表示返回列名为 name1 的数据 df, c(name1 , name2 , . , namek) 表示返回由多个列组成的数据框
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 借用相机协议书范本
- 委托公证协议书模板范本
- 土地收回处置协议书范本
- 2025年磷酸铁锂电池使用指南试题
- 养老服务标准化培训课件
- 养老服务体系课件模板
- 养老旅游课件百度
- 互联网+教育:2025年数字化营销助力招生增长白皮书
- 互联网医疗平台2025年在线问诊平台与患者健康干预服务对接报告
- 甘南市重点中学2025届物理高二第二学期期末统考模拟试题含解析
- GA/T 1217-2015光纤振动入侵探测器技术要求
- 2023年贵州水钢金属科技有限公司招聘笔试题库及答案解析
- 七年级生物下填图题(识图题)总复习
- 后穹窿穿刺课件
- 同志借调工作鉴定现实表现材料集合5篇
- MDITDI的安全使用与操作课件
- FMEA-潜在失效模式分析
- 外汇交易交易纪录明细表格模板
- 犟龟 完整版课件
- 电力系统继电保护完整版教学课件全书电子讲义(最新)
- 中国太平洋人寿保险股份有限公司附加太平盛世疾病保险条款
评论
0/150
提交评论