R语言基础与应用教学课件汇总整本书电子教案全套教学教程完整版电子教案(最新).pptx
《R语言基础与应用教学课件汇总整本书电子教案全套教学教程完整版电子教案(最新).pptx》由会员分享,可在线阅读,更多相关《R语言基础与应用教学课件汇总整本书电子教案全套教学教程完整版电子教案(最新).pptx(309页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、R语言简介语言简介R语言是用于统计分析,图形表示报告的编程语言和软件环境。R语言最早是由新西兰奥克兰大学的RossIhaka和RobertGentleman创建的,目前由RDevelopmentCoreTeam开发和维护。R是一套由数据操作、计算和图形展示功能整合而成的套件。包括:有效的数据存储和处理功能,一套完整的数组(特别是矩阵)计算操作符,拥有完整体系的数据分析工具,为数据分析和显示提供的强大图形功能 R语言的特点语言的特点1简单有效简单有效2功能强大功能强大3软件容易扩展软件容易扩展4强大的社区支持强大的社区支持R语言是一个开源的语言,可以在互联网上下载安装使用。打开R语言官网(htt
2、ps:/cran.r-project.org/bin/windows/base/)页面界面就是R语言的最主要交互界面,也是运行、调试大部分代码的地方,这里要注意的是,界面中每行最开始的符号表示在此输入代码,输入代码之后,然后按Enter键执行代码,代码运行后,结果将会在代码的下一行中显示出来。直接运行代码直接运行代码 该例代码如下:print(Hello World)在R中print()函数将指定字符串输出到控制台,并在执行函数后,以“数字”形式显示运行结果。当显示结果有多行时,“数字”会指明各返回值是第几个。通过程序脚本来运行通过程序脚本来运行 在在R中查看帮助中查看帮助此外,用户也可以在“
3、”后输入命令来查看帮助。在R中,在?后输入待查的命令,或者以“help(命令)”形式输入,都可以查看对应命令的帮助。在控制台中输入命令example(persp),即可自动运行R中的三维图像绘制函数perspR语言的包语言的包R是开源的软件工具,很多R语言用户和爱好者都会扩展R的功能模块,我们把这些模块称为包。包是R函数、数据、预编译代码以一种定义完善的格式组成的集合,而在计算机上存储包的目录称为库(library)。在R中拥有数量巨大的包,这些包横跨各个领域。值得注意的是:R自带了一系列默认包(包括base、datasets、utils、grDevices、graphics、stats以及m
4、ethods),它们提供了种类繁多的默认函数和数据集,人们无需下载即可使用。.libPaths()1D:/ProgramFiles/R/R-4.0.2/librarysearch()1.GlobalEnvpackage:statspackage:graphics4package:grDevicespackage:utilspackage:datasets7package:methodsAutoloadspackage:base 在R语言中有许多R函数可以用来管理包。第一次安装一个包,使用命令install.packages()即可。在R语言中包的安装是指从某个CRAN镜像站点下载它并将其放入库
5、中的过程。要在R会话中使用它,还需要使用library()命令载入这个包。数据类型与数据对象数据类型与数据对象R语言中的数据对象十分丰富,本章主要讲述R语言中的各种数据对象定义及使用的基本方法。数据类型数据类型在每种编程语言和不同的数据库中都有不同的数据类型。通常可以根据数据类型的特点将数据划分为不同的类型,如原始类型、多元组、记录单元、代数数据类型、抽象数据类型、参考类型以及函数类型等。在R中输出基本的数据类型 n print(class(n)1 numeric a print(class(a)1 logical b print(class(b)1 character j print(cla
6、ss(j)1 complex在R中查看数据的属性。j print(class(j)1 complex print(cat(j)3+2iNULL 变量与标量变量与标量变量是计算机语言中能储存计算结果或能表示值的抽象概念。变量可以保存程序运行时用户输入的数据、特定运算的结果以及要在窗体上显示的一段数据等。在R语言中有效的变量名称由字母,数字和点或下划线字符组成。变量名以字母或不以数字后跟的点开头,并且紧随其后的字符是不能是数字。如a、welcome、a1、x2、.x都是合法的命名。在R中对变量赋值。x y x1 1 y1 2在R中对变量赋值,并输出最大值。max(x x1 1 2 3 4 5标量标
7、量R基本数据类型是向量,而标量是指长度为1的向量,即长度为1的数组。因此标量只是向量的一种特例,并且以单元素向量的形式出现。使用函数print()输出数值。a b c print(c)1 3在R中输出字符串。a print(a)1 Hello World typeof(a)1 character在R中输出逻辑类型 a b typeof(a)1 logical typeof(b)1 logical在R中输出逻辑运算。TRUE&TRUE1 TRUE TRUE&FALSE1 FALSE TRUE|TRUE1 TRUE TRUE|FALSE1 TRUE!TRUE1 FALSE在R中判断是否空值。is.
8、na(x)1 TRUE y is.na(y)1 FALSE R语言中的数据对象语言中的数据对象R的数据对象从结构角度来看包括向量、矩阵、数组、列表、因子、数据框 向量向量向量是用于存储数值型、字符型或逻辑型数据的一维数组。在R中的向量类似于其他编程语言中常见的数组,只用于保存具有相同数据类型的数据。在R中创建向量。x print(x)1 1 2 3 4 5 y print(y)1 1 2 3 4 5 6 7 8 9 10 z print(z)NULL w print(w)在R中用seq()来创建向量。s1 print(s1)1 1 3 5 7 9在R中用names x names(x)x ow
9、en alex messi 1 2 3在R中访问向量元素。x x11 a x21 b x31 c在R中获取向量中的多个元素。x xc(1,2)1 a b xc(1,3)1 a c在R中对向量进行常见运算。x sum(x)1 45 max(x)1 9 min(x)1 1 mean(x)1 5 length(x)1 9 var(x)1 7.5 sd(x)1 2.738613 median(x)1 5 quantile(x)0%25%50%75%100%1 3 5 7 9 sort(x)1 1 2 3 4 5 6 7 8 9 rev(x)1 9 8 7 6 5 4 3 2 1矩阵在R语言中,矩阵(m
10、atrix)是将数据按行和列组织数据的一种数据对象,相当于二维数组,可以用于描述二维的数据。与向量相似,矩阵的每个元素都拥有相同的数据类型。在R语言中可以使用matrix()函数来创建矩阵,其语法格式如下:matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,dimnames=NULL)参数含义如下:data:矩阵的元素,默认为NA,即未给出元素值的话,各项为NA;nrow:矩阵的行数,默认为1;ncol:矩阵的列数,默认为1;byrow:元素是否按行填充,默认按列;dimnames:以字符型向量表示的行名及列名。在R中创建矩阵。matrix(c(1,2,3,4,5
11、,6,7,8,9),nrow=3),1 ,2 ,31,1 4 72,2 5 83,3 6 9在R中创建矩阵并命名。x x ,1 ,2 ,31,1 4 72,2 5 83,3 6 9 dimnames(x)x b1 b2 b3a1 1 4 7a2 2 5 8a3 3 6 9在R中创建矩阵,并访问矩阵。x x ,1 ,2 ,31,1 4 72,2 5 83,3 6 9 x1,11 1 x1,21 4 x2,11 2 x2,31 8在R语言中,矩阵可与标量或是其他矩阵进行运算。如定义某矩阵为A,某标量为a,则A+x表示将矩阵的所有值与标量相加。如定义某矩阵为A,另一矩阵为B,则A+B表示求矩阵A+B
12、的和。如定义某矩阵为A,则使用函数t()可求出该矩阵的转置矩阵。如定义某矩阵为A,则使用函数solve()可求出该矩阵的逆矩阵。如定义某矩阵为A,则使用函数nrow()可求出该矩阵的行数,使用函数ncol()可求出该矩阵的列数。在R中创建矩阵,并进行矩阵的加减乘除运算。x x ,1 ,2 ,31,1 4 72,2 5 83,3 6 9 x+3 ,1 ,2 ,31,4 7 102,5 8 113,6 9 12 x-3 ,1 ,2 ,31,-2 1 42,-1 2 53,0 3 6 x*3 ,1 ,2 ,31,3 12 212,6 15 243,9 18 27 x/3 ,1 ,2 ,31,0.33
13、33333 1.333333 2.3333332,0.6666667 1.666667 2.6666673,1.0000000 2.000000 3.000000数组数组在R语言中,可以认为数组是矩阵的扩展,它将矩阵扩展到2维以上。如果给定的数组是1维的则相当于向量,2维的相当于矩阵。在R语言中可以使用array()函数创建。array()函数的语法格式如下所示:array(data=NA,dim=length(data),dimnames=NULL)在R中创建数组。arr1 arr1 1 1 2 3 4 5 6 7 8 9 10 arr2 arr2 ,1 ,2 ,3 ,41,1 4 7 10
14、2,2 5 8 13,3 6 9 2在R中访问数组。arr3 arr3,1 ,1,2,31,1 4 72,2 5 83,3 6 9,2 ,1 ,2 ,31,10 3 62,1 4 73,2 5 8,3 ,1 ,2 ,31,9 2 52,10 3 63,1 4 7,4 ,1 ,2 ,31,8 1 42,9 2 53,10 3 6列表列表列表是R语言中的是对象的集合。R语言中的列表与R语言中的向量、数组和矩阵不同,它的每个分量的数据类型可以是不同的。在R语言中可以使用list()函数来创建列表,其语法格式为:list(name1=value1,name2=value2,.)在R中创建列表。(x(x
15、 x1$name1 owen messi dandy x2$score1 89 68 71 x11 owen messi dandy x21 89 68 71因子因子因子在R语言中可以用来表示名义型变量或有序变量。名义变量一般表示类别,如性别,种族等等。在R语言中可以使用factor()函数来创建因子变量。factor()函数的语法格式为:f a a1 x y z xLevels:x y z在R中创建因子并访问因子。a a1 x y z x wLevels:w x y z nlevels(a)1 4 levels(a)1 w x y z ordered(a)1 x y z x wLevels:
16、w x y (d d d name sex score1 张宏 男 902 邓兰 女 853 刘涛 男 824 张峰 男 63 str(d)data.frame:4 obs.of 3 variables:$name:chr 张宏 邓兰 刘涛 张峰$sex :chr 男 女 男 男$score:num 90 85 82 63在R中对数据框进行查看。s s x1 12 23 34 45 56 67 78 89 910 10 head(s)x1 12 23 34 45 56 6 tail(s)x5 56 67 78 89 910 10R语言中数据类型的转换语言中数据类型的转换在R中判断数据类型。cl
17、ass(c(1,2,3)1 numeric class(c(hello)1 character class(matrix(c(1,2,3)1 matrix array在R中判断数据类型并进行转换。x is.character(x)1 TRUE as.factor(x)1 a b cLevels:a b c as.data.frame(x)x1 a2 b3 c as.matrix(x),11,a 2,b 3,c控制语句与函数控制语句与函数现实世界中的很多事情,有时需要遵循一定的条件去执行,有时需要反复执行,只有满足相应的条件才能做相应的事情,不同的条件会执行不同的操作。条件结构条件结构R语言和大
18、多数程序语言一样都存在分支结构和循环结构两种流程控制结构,通过if语句和switch语句可以实现分支结构控制语句。条件表达式,也称逻辑表达式,它是一种能够计算出布尔值(布尔真值True或布尔假值False)的表达式。6=71 FALSE FALSE=01 TRUE FALSE&FALSE#取与运算,若运算符两边均为TRUE,则返回TRUE;否则,返回FALSE。1 FALSE is.integer(2.5)1 FALSE Truth%in%c(what,is,truth)1 FALSER语言中分支结构控制语句中最基本的语句组就是if-else语句组。这组语句包含if语句,if-else语句和i
19、f-elseif-else语句。单一if语句一般用在程序中只有一个分支的情况下,它的语法结构如下:if(条件表达式)程序体判断一个数是否为正数,如果为正数则输出语句这个数是正数x 0)print(x是正数)if-else语句的语法结构和if语句的语法结构的区别只在于,如果if的条件表达式的判定是假,则运行else中的程序体,它的语法结构是:if(条件表达式)程序体1else 程序体2当出现更多的分支时,R语言可以使用if-elseif-else语句,这里elseif的个数需要通过程序的分支个数来确定,它的语法结构是:if(条件表达式)程序体1 else if(条件表达式2)程序体2else i
20、f(条件表达式n-1)程序体n-1 else 程序体nswitch语句语句R语言switch语句的基本语法如下:switch(表达式,实例1,实例2,)x switch(x,first,second,third,fourth)1 secondx print(x)1 third循环结构循环结构在R语言中for循环的语法结构如下:for(循环变量 in 循环区间)循环体使用for循环的使用,实现1至10的累加和。sum for(n in 1:10)sum=sum+n print(sum)1 55while循环循环在R语言中,while循环的语法结构和其他语言的while循环的语法结构相似,如下:w
21、hile(条件表达式)循环体while循环的语法结构比较简单,上例实现如下:sum i while(i=10)sum=sum+ii print(sum)1 55break语句语句break语句的作用是,一旦其被调用,不论循环是否结束都会跳出循环,需要注意的是,和return()函数不同,return()函数是结束该函数,而break语句只会从循环中跳出使用break语句实现1至10之间整数的累加和,当大于等于10时跳出循环:sum i while(i=11)break;sum=sum+ii print(sum)1 55repeat语句语句repeat是无限循环语句,并且会在达到循环条件后,使用
22、break语句直接跳出循环,其语法结构如下:repeat 语句 if(条件表达式)break 函数函数R语言包含了丰富的内部函数,R语言的扩展包也包含了大量的可实用函数。R语言中如何自定义函数。自定义函数的格式如下:函数名 sum-function(n)s-0 for(i in 1:n)s sum(100)1 5050返回值返回值在R语言中,函数的返回值可以返回任何R对象,尽管返回值通常为列表形式。在程序中可以通过显式调用return()函数,把一个值返回给主调函数。函数的参数函数的参数在R语言中,函数的参数值可以没有,可以有一个,也可以有多个;参数值的类型可以是R语言的基本类型,也可以是函数
23、。自定义一个函数实现三个数的相加,代码如下:sum sum(100,200,500)#虽然参数a,c都有默认值,此处对a,c重新赋值,b取值2001 2000 sum(100,200)#参数c取默认值1 2000 sum(a=100,b=200)#通过赋值的方式给a,b赋值,参数c取默认值1 2000 sum(b=200,a=100)#通过赋值的方式给a,b赋值,可以不按顺序1 2000sum(100,200,300)#参数a,c不取默认值,重新赋值1 1400程序的向量化实现程序的向量化实现在R语言中,采用显示循环会涉及多次函数的调用和迭代,常常很耗费时间。很多情况下循环和控制结构可以通过向
24、量化来实现,可以有效提升速度将下列条件语句改用逻辑索引的向量化实现。x y for(i in 1:length(x)if(xi=2)yi-0 else yi x y yx=2 yx!=2 x x ,1 ,2 ,31,1 5 92,2 6 103,3 7 114,4 8 12 apply(x,1,sum)1 15 18 21 24lapply()函数函数lapply()函数用来对列表、数据框等数据集进行循环,并返回和x长度同样的列表作为结果数据集,参数与apply()函数的参数相同计算list中的每个key对应的数据的分位数。代码如下:#构建一个1ist数据集x,分别包括a,b,c三个key值。
25、x lapply(x,quantile)$a 0%25%50%75%100%1.00 3.25 5.50 7.75 10.00$b 0%25%50%75%100%0.04978707 0.25160736 1.00000000 5.05366896 20.08553692$c 0%25%50%75%100%0.0 0.0 0.5 1.0 1.0sapply()函数sapply()函数与lapply()函数其实是一样的,只是返回的结果是一个向量或者是一个矩阵,当无法将一个结果简化为矩阵时,就会返回一个列表。sapply()函数的语法格式如下:sapply(X,FUN,,simplify=TRUE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基础 应用 教学 课件 汇总 电子 教案 全套 教程 完整版 最新
限制150内