R-语言基础知识及可视化介绍课件.pptx

上传人(卖家):晟晟文业 文档编号:4767817 上传时间:2023-01-08 格式:PPTX 页数:151 大小:2.21MB
下载 相关 举报
R-语言基础知识及可视化介绍课件.pptx_第1页
第1页 / 共151页
R-语言基础知识及可视化介绍课件.pptx_第2页
第2页 / 共151页
R-语言基础知识及可视化介绍课件.pptx_第3页
第3页 / 共151页
R-语言基础知识及可视化介绍课件.pptx_第4页
第4页 / 共151页
R-语言基础知识及可视化介绍课件.pptx_第5页
第5页 / 共151页
点击查看更多>>
资源描述

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 用户自编函

26、数 R的一个最大优点之一就是用户可以自行添加函数。事实上,R中的许多函数都是由已有函数构成的。一个函数的结构看起来大致如此:myfunction-function(arg1,arg2,.)statements return(object)63 比如,自定义一个函数:通过给出直角三角形的两条直边,得到斜边的长度 slopeLength=function(a,b)y=sqrt(a2+b2)return(y)slopeLength(3,4)64二、R统计分析(一)、基本统计分析 描述性统计分析 频数表和列联表 相关系数和协方差 t检验65 1.描述性统计分析 连续变量的中心趋势、变化性和分布形状 使

27、用自带数据库车辆路试(mtcars)数据集。我们的关注焦点是每加仑汽油行驶英里数(mpg)、马力(hp)和车重(wt)。代码:vars-c(mpg,hp,wt)head(mtcarsvars)66多种方法进行描述性统计分析:(1)通过summary()计算描述性统计量 代码:summary(mtcarsvars)67描述性统计分析:(2)通过sapply()计算描述性统计量68mystats-function(x,na.omit=FALSE)if(na.omit)#如果设定na.omit=TRUE则移除缺失值 x-x!is.na(x)m-mean(x)n-length(x)s-sd(x)ske

28、w-sum(x-m)3/s3)/n#计算偏度 kurt-sum(x-m)4/s4)/n 3#计算峰度 return(c(n=n,mean=m,stdev=s,skew=skew,kurtosis=kurt)sapply(mtcarsvars,mystats)69描述性统计分析(3)Hmisc、pastecs和psych包也提供了计算描述性统计量的函数,由于这些包并未包括在基础安装中,所以需要在首次使用之前先进行安装。Hmisc包中的describe()函数可返回变量和观测的数量、缺失值和唯一值的数目、平均值、分位数,以及五个最大的值和五个最小的值。70 代码:install.packages(

29、Hmisc)library(Hmisc)describe(mtcarsvars)71描述性统计分析(4)还有更多:如,pastecs包中名为stat.desc()的函数,它可以计算种类繁多的描述性统计量。如,计算非缺失值的数量、平均数、标准差、中位数、截尾均值、绝对中位差、最小值、最大值、值域、偏度、峰度和平均值的标准误。72 代码:install.packages(psych)library(psych)describe(mtcarsvars)73描述性统计分析74 2.分组计算描述性统计量 在比较多组个体或观测时,关注的焦点经常是各组的描述性统计信息,而不是样本整体的描述性统计信息。同样地

30、,在R中完成这个任务有若干种方法。可以使用aggregate()函数,doBy包中的summaryBy()函数,psych包中的describe.by()函数等等,来分组获取描述性统计量 如:使用psych包中的describe.by()分组计算概述统计量 代码:library(psych)describe.by(mtcarsvars,mtcars$am)75描述性统计分析(1)频数列表和列联表 学习类别型变量的频数表和列联表,以及相应的独立性检验、相关性的度量、图形化展示结果的方法。案例分析:我们除了使用基础安装中的函数,还将连带使用vcd包和gmodels包中的函数。代码:library(

31、vcd)head(Arthritis)7677R中提供了用于创建频数表和列联表的若干种方法。见下表:频数列表和列联表(2)一维列联表 代码:mytable-with(Arthritis,table(Improved)#简单频数表 mytable prop.table(mytable)#将频数转化为比例值 prop.table(mytable)*100#将频数转化为比例值7879频数列表和列联表(3)二维列联表 二维列联表,table()函数的使用格式为:80其中的A是行变量,B是列变量。除此之外,xtabs()函数还可使用公式风格的输入创建列联表,格式为:代码:mytable-xtabs(Tr

32、eatment+Improved,data=Arthritis)mytable81频数列表和列联表 使用CrossTable生成二维列联表 使用gmodels包中的CrossTable()函数是创建二维列联表的第三种方法。CrossTable()函数仿照SAS中PROC FREQ或SPSS中CROSSTABS的形式生成二维列联表。代码:install.packages(gmodels)library(gmodels)CrossTable(Arthritis$Treatment,Arthritis$Improved)8283频数列表和列联表(4)多维列联表 table()和xtabs()都可以基

33、于三个或更多的类别型变量生成多维列联表。margin.table()、prop.table()和addmargins()函数可以自然地推广到高于二维的情况。另外,ftable()函数可以以一种紧凑而吸引人的方式输出多维列联表。84(5)独立性检验 5.1.卡方独立性检验 检验分类变量的独立性,可以使用chisq.test()函数对二维表的行变量和列变量进行卡方独立性检验。代码:library(vcd)mytable-xtabs(Treatment+Improved,data=Arthritis)chisq.test(mytable)mytable-xtabs(Improved+Sex,data

34、=Arthritis)chisq.test(mytable)8586治疗情况和改善情况不独立(或者说二者有关系)性别和改善情况独立(或者说二者木有关系)(3)相关系数和协方差 相关系数可以用来描述定量变量之间的关系。相关系数的符号(+)表明关系的方向(正相关或负相关),其值的大小表示关系的强弱程度(完全不相关时为0,完全相关时为1)。87 3.1 Pearson和Spearman相关 Pearson积差相关系数衡量了两个定量变量之间的线性相关程度。Spearman等级相关系数则衡量分级定序变量之间的相关程度。8889 cor()函数可以计算这三种相关系数,而cov()函数可用来计算协方差。两个

35、函数的参数有很多,其中与相关系数的计算有关的参数可以简化为:默认参数为use=everything和method=pearson 示例:R语言的自带的数据包中states.x77(关于美国50个州的1977年的人口、收入、文盲率、预期寿命、谋杀率和高中毕业率数据等。)我们试着采用第1至6列的50份数据,看看R语言是怎么做相关分析的,同时怎么看分析出的结果。90 协方差和相关系数 代码:states-state.x77,1:6 cov(states)#计算方差和协方差 cor(states)#计算皮尔逊相关系数,或皮尔逊积差系数(Pearsons product moment coefficie

36、nt)cor(states,method=“spearman”)#计算Spearman等级相关系数9192 3.2 相关性的显著性检验 在计算好相关系数以后,如何对它们进行统计显著性检验呢?常用的原假设为变量间不相关(即总体的相关系数为0)。可以使用cor.test()函数对单个的Pearson、Spearman和Kendall相关系数进行检验。简化后的使用格式为:其中的x和y为要检验相关性的变量,alternative则用来指定进行双侧检验或单侧检验(取值为two.side、less或greater),而method用以指定要计算的相关类型(pearson、kendall或spearman)

37、。当研究的假设为总体的相关系数小于0时,请使用alternative=less。在研究的假设为总体的相关系数大于0时,应使用alternative=greater。默认情况下,假设为alternative=two.side(总体相关系数不等于0)93 代码:cor.test(states,3,states,5)94总体的相关度为0,则预计在一千万次中只会有少于一次的机会见到0.703这样大的样本相关度(即p=1.258e-08)4.t检验 独立样本t检验 一个针对两组的独立样本t检验可以用于检验两个总体的均值相等的假设。这里假设两组数据是独立的,并且是从正态总体中抽得。检验的调用格式为:其中的

38、y是一个数值型变量,x是一个二分变量。调用格式也可是:9596(二)中级统计分析 回归分析 从许多方面来看,回归分析都是统计学的核心。它其实是一个广义的概念,通指那些用一个或多个预测变量(也称自变量或解释变量)来预测响应变量(也称因变量、效标变量或结果变量)的方法。9798 OLS 回归 其中,n 为观测的数目,k 为预测变量的数目。99 为了能够恰当地解释OLS模型的系数,数据必须满足以下统计假设。正态性 对于固定的自变量值,因变量值成正态分布。独立性 Yi值之间相互独立。线性 因变量与自变量之间为线性相关。同方差性 因变量的方差不随自变量的水平不同而变化。100 用lm()拟合回归模型 在

39、R中,拟合线性模型最基本的函数就是lm(),格式为:其中,formula指要拟合的模型形式,data是一个数据框,包含了用于拟合模型的数据。101 R基础安装中的数据集women提供了15个年龄在3039岁间女性的身高和体重信息,我们想通过身高来预测体重。代码:fit-lm(weight height,data=women)summary(fit)#展示模型的详细结果 women$weight fitted(fit)#列出拟合模型的预测值 residuals(fit)#列出拟合模型的残差值 plot(women$height,women$weight,main=“Women Age 30-39

40、”,xlab=“Height(in inches)”,ylab=“Weight(in pounds)”)#模型诊断图 abline(fit)#图形加线102103Arthritis()104105 三、可视化工具介绍与使用(一)、基础绘图(二)、中级绘图(三)、高级绘图106(一).基础绘图 1.条形图 条形图通过垂直或水平的条形展示了类别行变量的分布(频数)。需要调用barplot函数实现:barplot(height),其中height是一个向量或者矩阵。107 如:做条形图 install.packages(vcd)有的版本要求载入grid包 install.packages(grid)

41、如果在rstudio脚本中无法载入,可以尝试在packages中载入 library(vcd)counts-table(Arthritis$Improved)counts barplot(counts,main=simple bar plot,xlab=Improvement,ylab=Frequency)108 barplot(counts,main=simple bar plot,xlab=Improvement,ylab=Frequency,col=blue)barplot(counts,main=Horizontal bar plot,xlab=Improvement,ylab=Fre

42、quency,horiz=T,col=blue)有了哪些改变?110 2.饼图 饼图在商界应用中无处不在,然而多数统计学家对其持否定态度,更推荐点图或者条形图,因为相对于面积,人们对长度的判断更精确。因此,R中饼图的选项与其他统计软件相比十分有限。饼图由函数pie(x,lables)如,做立体饼图 install.packages(plotrix)library(plotrix)pie3D(slices,labels=lbls,explode=0.2,main=3D pie chart)3.直方图 连续型变量的分布 Hist(x)做一个简单直方图:hist(mtcars$mpg)制定组数和颜色

43、:hist(mtcars$mpg,breaks=12,col=red,xlab=miles per gallon,main=colored histogram with 12 bins)添加轴须图 hist(mtcars$mpg,freq=FALSE,breaks=12,col=red,xlab=miles per gallon,main=histogram,rug plot,density curve)rug(jitter(mtcars$mpg)lines(density(mtcars$mpg),col=blue,lwd=2)(二)、R中级绘图展示双变量间关系(二元关系)和多变量间关系(多元

44、关系),即更为复杂的关系。比如:汽车里程与车重的关系怎样?install.packages(car)library(car)有时你可能需要加载install.packages(Rcpp)library(Rcpp)1.三个变量的散点图:scatterplot(mpgwt|cyl,data=mtcars,lwd=2,main=scatterplot,xlab=weight,ylab=miles,lengend.plot=TRUE,id.method=identity,labels=row.names(mtcars),boxplot=xy,smoother=loessLine)123124 2.高密

45、度散点图 代码练习:n-10000 c1-matrix(rnorm(n,mean=0,sd=.5),ncol=2)c2-matrix(rnorm(n,mean=3,sd=2),ncol=2)mydata-rbind(c1,c2)mydata-as.data.frame(mydata)names(mydata)-c(x,y)125 with(mydata,plot(x,y,pch=19,main=Scatter Plot with 10000 Observations)smoothScatter()函数可利用核密度估计生成颜色密度来表示点分布的散点图。with(mydata,smoothScat

46、ter(x,y,main=Scatterplot colored by Smoothed Densities)126127(三)、R高级做图128尝试用更高级点的方法做:Install.packages(“ggplot2”)library(ggplot2)qplot(mtcars$wt,mtcars$mpg)ggplot2的核心理念是将绘图与数据分离,数据相关的绘图与数据无关的绘图分离ggplot2是按图层作图ggplot2保有命令式作图的调整函数,使其更具灵活性ggplot2将常见的统计变换融入到了绘图中理论上如何实现?图层语法定义:一个默认的数据集和一组从变量到图形属性的映射;一个或多个图

47、层,每个都由一种几何对象、一种统计变换和一种位置调整组成,另外数据集和图形属性映射也是可选的;标度,每个图形属性映射都对应一个标度;一个坐标系统;分面设定install.packages(ggplot2)library(ggplot2)第一步:调用ggplot2中的数据mpg;Fuel economy data from 1999 and 2008 for 38 popular models of car第二步:绘制画布ggplot(data=mpg,mapping=aes(x=cty,y=hwy)133第三步:用geom函数将点、线、多边形等映射到画布上ggplot(data=mpg,map

48、ping=aes(x=cty,y=hwy)+geom_point()第四步:增加其他数据映射,如将变量year映射到颜色中。年份是一个离散变量,使用factor函数转为因子。ggplot(data=mpg,mapping=aes(x=cty,y=hwy,col=factor(year)+geom_point()134虚拟一组数据做个简单的柱形图,使用ggplot2预览 wsj 颜色组合的显示效果 library(ggplot2)install.packages(“ggthemes”)library(ggthemes)df-data.frame(x=1:6,y=1:6)p-ggplot(df,a

49、es(x=x,y=y,fill=factor(x)+geom_bar(stat=identity)p+scale_fill_wsj()+theme_wsj()+ggtitle(wsj,ExcelPro)p136137用ggplot2观察时间的变化 时间序列数据可视化最重要的是展示趋势和波动,以方便我们发现其模式。如:以上证指数为例进行作图,首先利用quantmod包从yahoo数据源获取从1997年以来的数据,存于变量SSEC中,抽取收盘数字,然后分别提取时间数据和指数数值,绘图结果如下图。138 install.packages(quantmod)library(quantmod)libra

50、ry(ggplot2)getSymbols(SSEC,src=yahoo,from=1997-01-01)close-(Cl(SSEC)time-index(close)value-as.vector(close)p-ggplot(data.frame(time,value),aes(time,value)p+geom_line()139140用ggplot2观察时间的变化时间序列数据可视化最重要的是展示趋势和波动,以方便我们发现其模式。例如,想了解美国个人储蓄率的可视化,使用ggplot2包中的economics的一部分数据进行观察。library(ggplot2)install.packa

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(R-语言基础知识及可视化介绍课件.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|