R-语言基础知识及可视化介绍课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《R-语言基础知识及可视化介绍课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基础知识 可视化 介绍 课件
- 资源描述:
-
1、R 语言基础知识 测试R对于你有什么用?-你属于下面的哪一类?A.只需要做基础的交叉表和最简单的模型,最喜欢按按钮。B.需要用一些复杂的模型或者最新的方法,有时在只需按按钮的软件中找不到你要的结果,可以忍受打字.C.经常在傻瓜软件中找不到你要的方法,想自己写又无处下手,喜欢打字,甚至有点编程基础.答案R对于你有什么用?-属于A类的同学:R在你的事业中不会起到重要的作用,可以考虑把宝贵的时间花在个人娱乐方面。-属于B类的同学:R可以在你偶尔找不到需要的统计方法时成为你的救命稻草。但是由于你对按按钮有一定的喜爱,你对R会产生畏惧心理。请衡量你的需求程度以及对于打字的厌恶程度来判断你今晚的活动。-属
2、于C类的同学:R就是为你而生的.你会有命中注定的感觉。为什么?-R基本没有几个可以按的按钮,全部结果都需要输入命令才可得到-R不会自动作出漂亮的交叉表格,需要输入命令找到相应值,输入到word中作出的表格中。但是!-R有最全的,最前沿的,最快更新的统计方法-R有最直观的帮助文件,可以自学-R免费的-R非常灵活,可以作为一个独自的编程语言.是做数据模拟的最好的选择.入门必备:R语言官方网站:https:/www.r-project.org/Rstudio:http:/ An Introduction to R http:/cran.r-project.org/doc/manuals/R-intr
3、o.pdf http:/cran.r-project.org/manuals.html HSAUR:A Handbook of Statistical Analyses Using Rhttp:/cran.r-project.org/web/packages/HSAUR/R(and S-PLUS)Manual to Accompany Agrestis Categorical Datahttps:/ J.Maindonald and J.Braun(2003),“Data Analysis and Graphics Using R:An Example-Based Approach”,Camb
4、ridge University Press,http:/wwwmaths.anu.edu.au/johnm/.R语言实战(第2版),2016年,卡巴科弗(Robert I.Kabacoff)(作者),王小宁(译者),刘撷芯(译者),黄俊文(译者),等(译者),人民邮电出版社一、R 基础应用二、R统计分析三、R 可视化操作(一)软件介绍 R系统是一个用于数据处理,分析和作图的统计计算环境。R系统主要包括基础R系统和补充软件包(Packages)两个部分。一个软件包一般专门解决一个统计问题。R最大的特点是代码开源:R基础系统程序的代码,和所有软件包程序的代码都可以自由下载。R系统和所有补充包全部
5、免费,同时可以自己制作补充包供大众下载使用。一、R 基础应用 R系统的特点-有效快速的数据储存和数据操作-齐备的数据分析和处理的系统工具-灵活的画图显示工具-有完善的,简单并有效的编程语言 -含有最前沿,最快更新的统计方法 Official Homepage:http:/www.R-project.org 可以在其他操作系统上安装对应R系统,像 Unix systems,Windows platforms and Mac OS X。R在windows上的安装:http:/ 运行R:程序-R-R 3.4.0(二)、R 界面介绍与常用编辑器10基本菜单控制台R 界面介绍 脚本文件用于储存R命令及其
6、注释 工作空间可储存现有的数据库及变量 改变路径可以设定打开文件,读取文件所用的路径 所有的菜单命令都可以通过在控制台输入相应的R命令来实现R 界面介绍对于不同的统计问题可选用不同的补充包处理安装完补充包后,每次打开R还要导入补充包到现有的环境下才可使用里面的函数(functions):也可直接输入 library(packageName)在基础系统上已装好了一些常用的补充包察看已经安装的补充包:library()察看已经导入的补充包:Misc-List Search Path 或者 输入search()R常用编辑器 2.1 Notepad+window操作系统下的最佳选择,完全开源和免费,默
7、认支持R语言的高亮显示,便于中文编码和文本操作。在windows系统中,直接把.R的后缀名设为使用Notepad+打开是一种最方便的方式。1314 2.2 RStudio 目前最流行的R语言编辑器,可以高亮显示代码、主动联想命令,提供R的图形设备、对象管理器、调试工具等高级功能。如果只进行R语言的开发,RStudio是不二之选。1516程序编辑窗口工作空间与历史信息程序运行与输出窗口(主界面)画图和函数包帮助窗口 2.3 包的载入 包的安装是指从某个CRAN镜像站点下载它并将其放入库中的过程。要在R会话中使用它,还需要使用library()命令载入这个包。例如,要使用ggplot2包,执行两行
8、命令 install.packages(“ggplot2”)library(ggplot2)可以使用help查看包,如,help(package=gclus)#帮助查看gclus包17 代码练习1(包的下载与打开):install.packages(vcd)#安装vcd包(一个用于可视化类别数据的包)help(package=vcd)#列出此包中可用的函数和数据集 library(vcd)#载入这个包18(三)、R的基础命令和变量类型 3.1 R的基础命令 R系统区分大小写,(注意:在使用R时调整为英文输入法)R 可取的变量名字在不同操作系统下要求不同。一般任何数字和字母,以及._,都可用于组
9、成变量名字。但是名字第一个字母不可为数字或_.如,A32,.a1 基础命令包括表达命令(expressions)和转让命令(assignments).表达命令:输入变量名字后会被计算并打印出来。转让命令:输入后会先计算右边的公式结果,并导入到左边的变量名字里。结果不会被打印出来。控制台每行第一个符号表示你可开始输入命令:a-2 不同命令可用;或者enter(新一行)来隔开 可用 键来查找控制台上输入过的命令 Comments(注释)要用#开头,整行会变为comments,无法运行 可以把所有要输入的命令存到一个R的脚本(scriptxx.R)文件之中。R有一个简易的脚本文件编辑器。在脚本里运行
10、命令可以先选择需要运行的命令,然后按F5.结果在控制台(console)里显示。Esc键可停止正在运行的命令.,3.2 变量和赋值 R中的赋值符号有两种方式:-和=xxx=1 assign(x,1)R语句由函数和赋值构成。通常,R使用-,而不是传统的=作为赋值符号。213.3 函数:函数一般用来获取一个对象的信息,得到需要的计算结果,或者令R执行特定的命令.如:sum(objectName)取得objectName这个对象的总数每一个函数包括函数名称。如,sum和 一些用户可设定的变量(如 objectName),变量会放在括号中.每一个函数的功能是不同的每一个函数中的变量的类型是不同的,是被
11、建立这个函数的编程者定义好的(如,对于sum这个函数,objectName里面的值必须得是数字).如:length(a)mode(a)mean(a)了解一个函数的用法:?functionName (如:?sum)22 假如我们要创建一个含有五个数值的向量x,且这五个值分别为10、5、8、9和21,则R中的命令为 x-c(10,5,8,9,21)请问c()是一个什么函数,如何了解它?23 代码练习2:X-rnorm(10)#创建了一个名为x的向量对象,它包含10个来自标准正态分布的随机偏差。mode(x)#现实向量属性 head(x)#显示x向量中第一行 list(x)#显示x向量中的全部数据
12、尝试写y-c(1:20)请自己试着看一下y的属性、全部数据,并打开Rstudio右上方的environment,能发现什么?24253.4 对象(objects)在R中任何储存信息的个体都叫做对象(objects)如:A-2 他们可以是变量(variables),含有的数字的矩阵(array of numbers),字符串(character strings),函数(functions),或者其他更复杂的包含多个objects的结构。如何察看已储存的objects:尝试输入 objects()函数 消除已储存的objects:rm(objectName)可以用save workspace来保存
13、现环境下已有的Objects供下次使用。会存为(.Rdata)文件。3.5 数据结构 R拥有许多用于存储数据的对象类型,包括标量、向量、矩阵、数组、数据框和列表。它们在存储数据的类型、创建方式、结构复杂度,以及用于定位和访问其中个别元素的标记等方面均有所不同。27 3.5.1 向量 向量是用于存储数值型、字符型或逻辑型数据的一维数组。执行组合功能的函数c()可用来创建向量。各类向量如下例所示:#创建向量a-c(1,2,5,3,6,-2,4)a#显示向量ab-c(one,two,three)b#显示向量bc-c(TRUE,TRUE,TRUE,FALSE,TRUE,FALSE)c#显示向量c282
14、9 如何访问向量中的元素,比如,我只想看一个向量中的某几个数,怎么做?通过在方括号中给定元素所处位置的数值,可以访问向量中的元素。代码练习2:#抽取向量中的数 a-c(1,2,5,3,6,-2,4)a3#抽取向量中的第3个数 ac(1,3,5)#抽取向量中的第1、3、5个数 a2:7#抽取哪几个数,你知道么?试一试,并思考此处冒号的用处3031 3.5.2 矩阵 矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型)。可通过函数matrix创建矩阵。可以用?matrix(),或者help(matrix)来了解矩阵是什么,如何表达32 代码练习3:#创建矩阵 y-matrix
15、(1:40,nrow=5,ncol=4)#随机创建一个行为54的矩阵 y#以下将分别创建按行与按列填充的22的矩阵 cells-c(8,31,12,17)#先构建一个向量 rnames-c(R1,R2)#赋值行 cnames-c(C1,C2)#赋值列 mymatrixmatrix(cells,nrow=2,ncol=2,byrow=TRUE,dimnames=list(rnames,cnames)#创建一个按行填充的22的矩阵 mymatrix mymatrix-matrix(cells,nrow=2,ncol=2,byrow=FALSE,dimnames=list(rnames,cnames
16、)#创建一个按列填充的22的矩阵mymatrix33 代码练习4:x-matrix(1:20,nrow=2)#创建一个2行的矩阵 x x2,#抽取第2行 x,2#抽取第2列 x1,4#抽取第1行,第4列 x1,c(7,8)#抽取第1行,第7、8列 x2,c(4,5)#先不要看结果,你认为是抽取哪一行哪一列,结果如何?34 3.5.3 数组 数组(array)与矩阵类似,但是维度可以大于2。什么是数组?到这里先停下来,想一想,我们可以通过什么方式了解数组。?array()或者help(array)。35 代码练习5:创建数组 dim1-c(A1,A2)#创建向量 dim2-c(B1,B2,B3)
17、#创建向量 dim3-c(C1,C2,C3,C4)#创建向量 z-array(1:24,c(2,3,4),dimnames=list(dim1,dim2,dim3)#创建三维数值型数组(234)数值型数组 z36 3.5.4 数据框 矩阵+向量(各种类型)数据框可通过函数data.frame()创建 mydata-data.frame(col1,col2,col3)37 数据框通常是由数据构成的一个矩形数组,行表示观测,列表示变量。表1-1提供了一个假想的微信使用与孤独感情况的数据集。表1-1:大学生微信使用与孤独感38学生编号学生编号年龄年龄性别性别微信微信使用使用频次频次孤独感孤独感122
18、2522211443201534 19132518145619223注:性别1代表女,2代表男;微信使用情况“从不到经常”,赋值为“1到5”;孤独感“从不到经常”,赋值为“从1到5”。代码练习6:创建数据框#将表1-1大学生微信使用与孤独感做一个数据框 studentsID-c(1,2,3,4,5,6)#学生编号 age-c(22,21,20,19,18,19)#学生年龄 gendertype-c(男,女,女,女,女,男)#性别 loneliness-c(2,4,3,2,5,3)#孤独感 studentsdata-data.frame(studentsID,age,gendertype,lon
19、eliness)#形成数据框 studentsdata39 想一想,如果我们要选取数据框中的元素该怎么做?代码练习7:#有三种方法可以选取数据框中的元素 studentsdata1:2#方括号抽取 studentsdatac(gendertype,loneliness)#分别列出变量名 studentsdata$age#数据集加变量名40 3.5.5 列表 列表(list)是R的数据类型中为复杂的一种。等于向量+矩阵+数据框+其他列表的组合。可以使用函数list()创建列表:mylist-list(object1,object2,_)41 代码练习8:创建列表 mylist-list(obje
20、ct1,object2,_)a-My First List#创建一个名称为My First List的列表,列表包括b、c、d b-c(25,26,18,39)c-matrix(1:10,nrow=5)d-c(one,two,three)mylist-list(title=a,lists=b,c,d)mylist mylist2#调用数据集中的2 mylist3#调用数据集中的342 课堂练习一:v1-c(1,6,7,8)v2-c(2,4)m-matrix(1,2,4)L-list(v1,v2,m)43 3.5.6 数据集的标签 如果我想修改已有数据集中变量名的标签,该怎么做?方法一:使用fi
21、x()函数,调出并可视化数据集,可以直接在上面修改。试一下代码:fix(studentsdata)fix()函数有许多妙用,大家可以尝试!44 3.6 如何从现有的文本、excel表格或者统计软件中导入数据 读取excel文件的推荐三种方式:第一种,首先,将其另存或者导入为一个逗号分隔文件(csv),其次,写如下代码:read.csv(file.choose(),header=T)#选取csv文件,并读取,最后,选择你要读取的文件,在R中显示。第二种,直接在R中写入代码:data-read.csv(C:/Users/admin/Desktop/myfile.csv)#data#看文件中的数据4
22、5 第三种,直接在Rstudio右上方的,environment当中的import database,选取要导入的文件。注意:所有的文件名都应为英文46 导入SPSS数据 install.packages(foreign)library(foreign)install.packages(Hmisc)library(Hmisc)mydataframe for(i in 1:3)print(i2)53 for(i in 1:3)+print(i2)+54 2).while结构 while循环重复地执行一个语句,直到条件不为真为止。语法为:While(cond)statement 作为第二个例子,代
23、码:i0)print(I love R);i-i-1 又将单词I love R输出了10次。请确保括号内while的条件语句能够改变,即让它在某个时刻不再为 真否则循环将永不停止!在上例中,语句:i-i-155x0)print(I love R);i-x-156 在每步循环中为对象i减去1,这样在十次循环过后,它就不再大于0了。反之,如果在每步 循环都加1的话,R将不停地输出I love R。这也是while循环可能较其他循环结构更危险的原因。在处理大数据集中的行和列时,R中的循环可能比较低效费时。apply族函数能够较好地解决这一问题。57 3.7.2条件执行 在条件执行结构中,一条或一组语
24、句仅在满足一个指定条件时执行。条件执行结构包括 if-else、ifelse和switch。if-else结构控制结构if-else在某个给定条件为真时执行语句。也可以同时在条件为假时执行另外的语句。语法为:if(cond)statement if(cond)statement1 else statement258 示例如下:if(is.character(grade)grade-as.factor(grade)如果grade是一个字符向量,它就会被转换为一个因子 if(!is.character(grade)grade0.5,print(“passed”),print(“Failed”)Ou
25、tcome0.5,“passed”,“Failed)在程序的行为是二元时,或者希望结构的输入和输出均为向量时,适合用ifelse60 Switch结构 根据一个表达式的值选择语句执行。语法为:Switch(expr,.)其中.表示与expr的各种可能输出值绑定的语句。61 feelings=c(sad,afraid)for(i in feelings)print(switch(i,happy=I am glad you are happy,afraid=There is nothing to fear,sad=Cheer up,angry=Calm down now)623.7.3 用户自编函
展开阅读全文