《R语言基础》PPT课件.ppt
《《R语言基础》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《R语言基础》PPT课件.ppt(127页珍藏版)》请在三一办公上搜索。
1、语言基础,一 R简介二 R语言数据操作基础三 R语言的可视化,一 R 简 介,什么是R?,(1)最受欢迎的数据分析和可视化平台之一(2)首次出现1993,2011年随大数据的爆发而流行起(3)R是一种统计绘图语言,也指实现该语言的软件。它是一种解释型语言,而不是编程语言,也就是说,输入的命令能够直接执行。,为什么选择R?,(1)免费、支持Windows/Mac OS/Linux(2)开源。有强大的工具包,可以贡献自己的工具包(3)可以完成数据分析涉及的几乎所有步骤:,数据获取,数据清理,数据分析,结果报告,发布结果,下载和安装R,The Comprehensive R Archive Netw
2、ork,简称CRAN,提供下载安装程序和应软件包。在R主页 http:/www.r-project.org/选择下载相应的版本。,R程序包,base:包含基本的R函数datasets:包含基本的R数据集stats:包含各类统计函数nlme:包含用于线性和非线性混合效应的建模函数graphics:包含基本图形函数lattice:包含各种格栅函数,用于高级图像的绘制cluster:包含用于各种聚类分析的函数foreign:包含读取各种格式,如SPSS、SAS等格式数据文件函数utils:包含R管理的工具函数rpart:包含建立分类回归树的函数grDevices:包含基本图形设备函数methods:
3、包含关于R对象的方法和类的定义函数,函数调用,成功启动R意味着用户可在R工作空间中创建和管理R对象,调用已加载包中的函数实现对对象的管理和对相关数据的分析。用户可以通过两种方式调用函数:(1)函数名():这是一种无形式参数的函数调用,即括号中不给出任何内容。R将以默认的参数值调用并运行函数,运行结果即函数值将自动显示在R控制台中。例如:search():浏览已加载包的名称,即以无形式参数的方式调用名为search的函数。若要调用尚未加载的包中的函数,需按照“先加载,后浏览,在调用”的步骤实现。(2)函数名(形式参数列表):这是一种带形式参数的函数调用,即括号中依顺序给出了一个或多个形式参数,各
4、形式参数之间以英文逗号隔开。例如:为了解各包中包含哪些函数、各函数的功能以及如何调用函数,可书写:library(help=“包名称”),即以带形式参数(help=“包名称”)的方式调用名为library的函数。library(help=base)若要调用尚未下载的包中的函数,需首先将相关包下载并安装好。当R启动后并处于联网环境下,步骤为:第一,指定镜像站点。第二,下载安装Install package(“包名称”)。第三,加载包library(“包名称”)。,查看R的帮助文档,最常用的方法:1 菜单 帮助Html帮助或者help.start():以浏览器的形式打开R的帮助文档2 菜单 帮助R
5、函数帮助或者help(函数名):用于查看指定函数的帮助文档 R函数帮助文档通常包括函数的功能说明(参见Description部分)、函数的调用形式(参见Usage部分)、形式参数的含义(Arguments部分)、形式参数的具体取值(Value部分)、调用示例(Examples部分)等主要内容。,R的运行方式,两种运行方式:第一,命令行运行;第二,程序(脚本)运行。脚本运行还可采用非交互方式运行程序,步骤:一、指定R程序所在目录为R的当前工作目录。调用getwd(),即可获得当前目录名。改变目录可在菜单栏中改变,也可以用setwd(“指定目录”)。二、运行当前工作目录中的指定R程序source(
6、“R程序名”)。此外,程序运行方式中输出结果默认显示在控制台上,当处理的数据量较大,计算结果较多时,往往希望将计算结果输出到控制台的同时,保存到一个指定的文本文件中。为此,需在程序的第一行调用函数sink,基本书写格式为:sink(“结果文件名”,append=TRUE/FALSE,split=TRUE/FALSE)式中,结果文件一般为文本文件,默认位于当前目录下。append为TRUE表示当前文件有同名时追加到原文件后面,FLASE表示覆盖原文件内容。split为TRUE表示输出到指定文件夹的同时,仍输出到控制台,FLASE表示结果仅输出到指定文件夹。,二 R语言数据操作基础,R语言的数据类
7、型,R语言支持的数据类型:(1)数值型(numeric):类型的取值是实数。例如a-9.11;mode(a):显示指定对象的存储类型。(2)复数(complex):取值可扩展到虚数。例如a-100+10i;mode(a)(3)逻辑(logical):取值为TRUE(T)和FALSE(F),R语言区分大小写,T和F必须大写。例如a-T;mode(a)(4)字符型(character):类型的取值是字符串。例如a-”assf”(英文双引号不可以省略);mode(a),对象及其属性,R语言常用对象类型:(1)向量(vector):数据类型都可取,不允许出现不同数据类型(2)数组(array):数据类
8、型都可取,不允许出现不同数据类型(3)矩阵(matrix):数据类型都可取,不允许出现不同数据类型(4)数据框(data frame):数据类型都可取,不同列之间的数据类型可不同(5)列表(list):数据类型都可取,任何元素的数据类型均可不同(6)因子(factor):数据类型都可取,不允许出现不同数据类型,对象及其属性,固有属性:模式和长度使用mode函数可以读取对象模式,使用as.可以改变对象的模式。例如:a-100;mode(a),输出“numeric”,a-”100”;a-as.numeric(a)(转化数据类型),输出100。使用length()函数读取对象的长度属性对象的搜索和删
9、除由于所有的对象均存储在工作空间中,一旦对象过于庞大,就会影响运行速度。需查看工作空间内现存的对象列表(ls()),并删除其中某个对象(rm(对象名列表),remove(对象名))。,向量,创建向量R语言使用c(,)来创建向量。例如:c(2,5,6,9),c(T,F,T,F),c(China,Ko,Ja”)等。重复函数rep()创建向量,例如:rep(2:5,times=4)序列函数seq()创建向量,例如:seq(from=3,to=21,by=3)“:”产生向量,例如:1:10表示1到10的数字,例如:2:30*2+1表示产生2到30的数字的基础上再乘以2再加上1。通过与向量的组合,产生更
10、为复杂的向量。例如:rep(1:2,c(10,15)表示1重复10次,2重复15次产生字母序列letters,例如:letters1:26,向量,向量索引1、下标方式索引。下标始于1而非0。例如:a4)结果为2,3。which.max和which.min用于返回数值型向量中最大和最小元素的下标,例如which.max(a)结果为3,which.min(a)结果为1.3、subset方式索引。可以方便地索引向量、矩阵以及数据框。返回的是元素,不是下标。例如:subset(a,a4c(11,15)%in%a结果为:TRUE FALSE,向量,向量的编辑 向量修改只需要通过索引找到特定元素,然后直接
11、使用-进行赋值即可。1、向量扩展 R语言可对对象长度进行任意扩展。例如a-c(1,2,3);a-c(a,c(5:7)a 结果为1 2 3 5 6 72、元素的删除 对向量重新赋值的方式删除向量内某一元素。例如:a-c(1:4);a-a-3 a结果为1 2 4,向量,向量排序1、向量正排序 sort()函数:根据数值大小进行正排序。例如a-c(11:20,c(1:9);sort(a)2、向量倒排序 rev()函数:根据下标进行到排序。例如a-c(1,4,2,6,8);rev(a),向量,向量去重 unique()函数:实现向量的去重。例如:a-c(1,2,1,4,2,4,5,1);unique(
12、a)结果1 2 4 5,向量,缺失值处理na.fail()函数:向量a内包含至少一个NA,返回错误,不包含任何NA,返回原有向量。例如:a)函数:返回删除NA后的向量。例如:b),na.action):返回向量a中元素为NA的下标。is.na()函数:用于判断向量内的元素是否为NA。例如:b-!is.na(a),向量,向量间操作pmin(,.):依次比较向量1至向量n内的各元素。并把较小的元素组成新向量。例如:a,.):依次比较向量1至向量n内的各元素。并把较大的元素组成新向量。pmax(a,b,c)。结果为2 3 9 5 9intersect(,):返回向量的交集。union(,):返回向量
13、的并集。setdiff(,):返回向量的补集。,矩阵和数组,创建矩阵matrix()函数:以向量的形式输入矩阵中的全部元素,使用ncol和nrow可设置矩阵的行和列数。例如a):将矩阵反过来转化为向量。,矩阵和数组,矩阵索引1、使用行列下标来索引。例如:data-c(1:10);a-matrix(data,ncol=2,nrow=5,dimnames=list(c(r1,r2,r3,r4,r5),c(c1,c2);a3,2,表示矩阵a第三行第二列的元素。2、使用行和列名称来索引。例如:ar3,c23、使用一维下标来索引。例如:a1,#以向量形式返回矩阵a第一行的所有元素。a,1#以向量形式返回
14、矩阵a第一列的所有元素。,矩阵和数组,矩阵编辑1、矩阵合并。cbind()函数:通过列合并函数将多个已有向量合并成矩阵。例如:x1-c(1:5);x2-c(6:10);cbind(x1,x2)rbind()函数:通过行合并函数将多个已有向量合并成矩阵。例如:x1-c(1:5);x2-c(6:10);rbind(x1,x2)2、删除矩阵。删除矩阵内某行和某列的方式类似于向量,实质是对向量重新赋值。例如:data-c(1:10);a-matrix(data,ncol=2,nrow=5);a-a-1,,删除第一行的元素。a,-1删除第一列的元素。,矩阵和数组,矩阵的运算1、一般运算。A C D-ma
15、trix(rnorm(16),4,4)矩阵的加法(A+B)矩阵的减法(A-B)矩阵的各元素的乘法(A*B)矩阵相乘(A%*%C),矩阵和数组,矩阵的运算2、转置矩阵t()函数。例如:t(A)3、矩阵求解solve()例如:求解DX=A中的X,可以使用solve(D,A)4、矩阵的特征值和特征向量eigen()例如:E-eigen(D)$values为方阵的特征值,$vectors为方阵的特征向量,且一一对应。,矩阵和数组,数组创建array()函数:设置位数向量来创建一个多维数组,矩阵可以看成一个2维数组。例如data-array(c(1:30),dim=c(2,5,3);,矩阵和数组,数组索
16、引使用多个下标来索引。例如:data1,2,3,表示对第3个2*5矩阵中第一行第2列元素(23)进行了索引。data,3,则表示由第二维度下标是3的全部元素组成的二维数组。,矩阵和数组,apply函数应用apply函数可以读取多维数组中某个维度的所有数据并应用其它函数进行数据处理。apply(x,MARGIN,FUN),x多维数组array.MARGIN预处理的维数.FUN多维数组中某一维度元素的处理函数。例如:apply(data,3,sum)1(结果为55):用于计算多维数组data中第三维下标为1的所有元素的总和。或者使用sum(data,1)来实现。,列表和数据框,列表的创建list(
17、)函数:创建列表对象。例如:data-list(a=c(1,2,3),b=c(one,tow),c=T,d=c(3i+4,9i-9);data。每列内元素的数据类型和长度可以各不相同,但是相同列中元素的数据类型相同。,列表和数据框,列表索引1、使用列下标来索引。例如:data12、使用列名称来索引。例如:data$a和dataa,列表和数据框,列表编辑1、列表合并。使用c(,)合并和扩展list.注意list(,)不能进行list合并,它是实现list的嵌套。例如:data-c(data,list(e=c(T,T,F,F)2、列表转化为向量unlist()函数。例如:unlist(list(c
18、(1:3),c(one,two),列表和数据框,数据框的创建和名称data.frame()函数:把多个向量建立为一个数据框,并为列设置名称。例如:x1):读取并编辑列名称,如:names(x)names(x)1-体积,列表和数据框,数据框索引1、索引列:使用列下标来索引,例如:x2.使用列名称来索引,例如:x$运费和x运费,读取多列数据可用x,1:2,不可以采用x形式。2、索引行:行下标,,例如:x1:2,3、索引元素:例如:x$运费1,x运费1,x21,x1,24、subset函数索引:例如:subset(x,运费32&运费32&运费=87,体积),列表和数据框,数据框索引1、attach函
19、数:数据框绑定函数,detach函数:数据框的解除。例如:使用R中的自带数据集cars(查看R中的自带数据集用data()函数)attach(cars);speed2、with函数:with(数据框名,域访问函数1域访问函数2.),例如:with(cars,speed),列表和数据框,数据框编辑1、数据框的合并扩展:cbind()函数:添加数据集的新属性变量。例如:x-cbind(x,距离=c(12,13,11,14,15,11)rbind()函数:增加新的样本数据。例如:x-rbind(x,list(23,34,13)2、删除数据框。x-x,-1#删除第一行数据x-x-1,#删除第一列数据,
20、列表和数据框,缺失值处理na.omit函数可以删除数据框内包含NA的相关数据。例如:data-data.frame(a=c(1,2,NA,3),b=c(9:12)na.omit(data),因子,一般数据可分为分类和数值两种属性,上面介绍的都是数值类型数据,分类属性类型可分为无序因子(factor)如用户ID用“1”,“2”,“3”表示,没有高低之分。有序因子(ordered)如用户对商品的评分值“A”,”B”,”C”,”D”,”E”。各个类别间存在大小高低顺序。因子的存储类型为整数型(integer),但显示的是类别值,为字符串。,无序和有序因子,factor因子函数:factor(x,le
21、vels=sort(unique(x),na.last=TRUE),labels,exclude=NA,ordered=FALSE)X:向量levels:是因子的水平。如果不指定值,则有向量x内不同的值确定labels:是水平的标签。如果不指定值,则由向量x内不同点的值所对应的字符串确定exclude:在转化时,如果想把向量内某些取值的元素转化为缺失值NA,则设置该参数。ordered:FALSE转化后是无序因子,TRUE有序因子,无序和有序因子,使用as.factor把一个向量转化为无序因子向量。例如:a-as.factor(c(1,2,3);a,用is.factor判断a是否为因子。例如:
22、is.factor(a),将a1a2会报错,a1=a2正常显示为FALSE,因为无序因子不能进行大于小于的比较,只能进行等于和不等于比较。,无序和有序因子,使用as.ordered把一个向量转化为有序因子向量。例如:a-as.ordered(c(1,2,3);a,用is.ordered判断a是否为有序因子。例如:is.ordered(a),将a1a2不会报错,因为有序因子可以进行大于小于的比较。可利用levels函数读取和设置因子水平,格式为levels(因子名),levels函数将按因子水平值的升序显示它们对应的类别值。例如:a-c(Poor,Improved,Excellent,Poor)
23、;b-as.factor(a);levels(b);levels(b)1-one;b,连续数据的离散化,cut函数可以把数值类型数据依据间隔区间分段,并返回一个因子序列。cut函数的常用参数为:X:被分割的向量。labels:分割时依据的间隔区间。include.lowest:分割时的最小间隔区间。ordered_result:如果设置为T,则返回有大小意义的因子作为结果,为F,则返回无大小意义的因子作为结果。例如:某网站21名访问者一天内停留的时间数据如表:,连续数据的离散化,代码如下:time time.cut time.cut 1(0,10(10,30(10,30(0,10(0,10(0
24、,10(10,30(30,60(0,10 10(30,60(10,30(30,60Levels:(0,10(10,30(30,60 time.cut1time.cut2会报错分割区间返回的是无大小意义的因子向量。设置ordered_result=T,则可以比较time.cut-cut(time,breaks=c(0,10,30,60),ordered_result=T);time.cut1time.cut2,字符串操作,字符串长度length()可以读取向量内元素的数目,但是无法读取一个字符串的实际长度。需要用nchar函数,通过该函数可以读取字符串内部字符数目。例如:data nchar(d
25、ata)1 5,字符串操作,字符串合并与分割1、合并字符串paste(,sep=”),sep:链接多个字符串时,中间的间隔符默认为空格。例如:data-4分50秒;data-paste(网站停留时间:,3小时,data,sep=);data,字符串操作,字符串合并与分割2、分割字符串strsplit依据特定字符串分割为列表,其中分割的字符串不在出现。例如:data-网站停留时间:3小时4分50秒;data-strsplit(data,split=:)。结果:网站停留时间 3小时4分50秒。data-unlist(data);data-strsplit(data,split=小时)。结果为:11
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- R语言基础 语言 基础 PPT 课件
链接地址:https://www.31ppt.com/p-5625954.html