R语言傻瓜教程——1基础

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

LiuChen1R语言傻瓜教程——1基础0.约定阴影为代码或R的输出内容。1.安装1.1安装R和RStudio(1)从下载R语言相应版本,双击安装;(2)从下载RStudio安装。1.2说明(1)R语言本身仅提供了命令行工具,一般用户可能会觉得使用不便,所以用RStudio作为工具来使用R语言;(2)RStudio仅为R的IDE(集成开发环境),依赖于R;(2)在苹果系统中,启动RStudio时要求安装commandlinetools,在弹出窗口中选择安装即可);(3)R和RStudio都是免费开放源代码的,所以尽可能在官方网站上下载(R在全球有很多镜像,等同于官网,上述下载地址即其在北京交通大学的镜像)。2.运行2.1运行R语言LiuChen2如果不使用RStudio,双击R语言图标(如下图)即可启动。启动后如下图所示,在提示符处输入R语言命令。1.2RStudio启动RStudio相对于R语言自身提供的命令行工具,使用要便捷得多。RStudio图标如下图。启动后RStudio的环境如下图所示。左侧为同启动R时一样的命行窗口;右上侧为“环境”和“历史”。环境是指当前R语言的运行环境,也称为工作空间,在使用过程中所创建的变量、数据都在这里列出,而用户在使用过程中输入的命令都在“历史”子窗口中列出。右侧包括“文件”、“绘图”、“扩展包”、“帮助”、“视图”等子窗口。相关功能在后续使用过程中再详细说明。除此之外RStudio还有很多默认没有显示的子窗口,通过顶部菜单view中的选项可以LiuChen3选择显示它们。1.3退出在退出时,R和RStudio默认都会弹出窗口询问是否保存工作空间,如果选择保存,则R或RStudio会保存全部的变量、数据等,下次打开R或RStudio时还可以继续使用而不用再次输入。如下分别为R和RStudio退出时的弹出窗口。3.R语言运算符号运算符号:+(加)、-(减)、*(乘)、/(除)、^(乘方)、%/%整除、%%求余;逻辑判断符号:(大于)、(小于)、=(大于等于)、=(小于等于)、!=(不等)、==(相等)LiuChen4逻辑运算符号:&(逻辑与)、|(逻辑或,Enter键上边的竖线)赋值符号:-或-示例:在命令窗口输入x-2此时,变量a的值就为2。2-a的功能与a-2一样。赋值符号也可以用=替代,但是在某些情况下会出错,所以不建议在R语言中使用。4.R语言数据类型4.1基本数据类型R语言中基本数据类型是指仅包含一个数值的数据类型,主要包括数值型、字符型、逻辑型、空值等。(1)数值型如1,3.14等能够进行数学运算的数字。(2)字符型即文本数据,需放在双引号或单引号之间,如a”、'abc'、张三。特别提示,这里的单引号和双引号都是英文输入法下的双引号和单引号,中文的符号只能算是普通文本。在各种编程语言中,中文标点都只能作为同普通文本一样的字符使用,代码中不应出现,如下代码会出现错误:x-“helloR”y-‘helloR’下面是正确代码(注意引号):x-helloRLiuChen5y-'helloR'用中文标点符号替代英文符号是初学编程的人最容易出现的错误,需特别注意以免打击学习积极性。(3)逻辑型逻辑型数据只有两个取值TRUE和FALSE,TRUE和FALSE必须是大写的。TRUE和FALSE可以分别简写为T和F,也必须大写。如:x-TRUEy-FALSE(4)空值在统计数据中常常会出现一些缺失的值,R语言中用一个特殊的值NA(大写)来表示。NA与其他数据的运算结果都是NA。如:x-NA有时候,不能确定一个变量是否是空值,R语言提供了一个函数is.na()用来判断是否空值,如:x-NAis.na(x)结果为TRUE。4.2数据对象R语言中数据对象是指包含一组数值的数据类型,主要包括向量、矩阵、数组、列表、数据框。(1)向量向量是由相同基本类型数值组成的序列,可以认为其等同于数学中的向量,在R语言LiuChen6中向量的使用相当频繁。在R语言中使用函数c()来创建一个向量,如:x-c(1,2,3,4,5)x输出为:[1]12345其中[1]为输出内容的行号。a.向量运算向量的加减乘除运算是对向量元素的加减乘除运算。输入xc(1,2,3,4)x+1x输出为[1]2345输入x-c(1,2,3,4)y-c(1,1,1,1)x+y输出为[1]2345。b.快速生成有序向量(函数seq和rep)LiuChen7在需要大量有序数值向量时,为了避免手工输入的麻烦,R语言提供了快速生成的方法。如:输入x-1:10x输出为[1]12345678910输入x-10:1x输出为[1]10987654321上述利用“:”只能生成步长为1的向量,若要生成任意步长的向量需要使用函数seq(),它有三个参数,(最小值,最大值,步长)。如:输入x-seq(1,20,2)x输出为[1]135791113151719输入x-seq(1,5,0.5)xLiuChen8输出为[1]1.01.52.02.53.03.54.04.55.0别外一个函数rep()可以通过重复一个基本数值或数值对象多次来创建一个较长的向量,它有二个参数,(数据,重复次数)。如:输入x-rep(1,10)x输出[1]1111111111输入x-rep(c(1,2,3),3)x输出[1]123123123c.向量索引向量索引也称为向量中数值元素的下标,用来引用向量中的单个数值,用方括号[]表示,如:输入x-c(1,2,3,4,5)x[1]输出[1]1LiuChen9向量索引除了引用单个值之外,还起过滤的作用,如:输入x-c(1,2,3,4,5)x[x3]输出x中大于3的数值[1]45d.常用的向量函数函数名功能示例,已知x-c(2,1,5,3,4),y-c(8,9)输入输出sum求和sum(x)[1]15max最大值max(x)[1]5min最小值min(x)[1]1mean均值mean(x)[1]3length长度length(x)[1]5var方差var(x)[1]2.5sd标准差sd(x)[1]1.581139median中位数median(x)[1]3quantile五个分位数quantile(x)0%25%50%75%100%12345sort排序sort(x)sort(x,TRUE)[1]12345[1]54321LiuChen10rev倒序rev(x)[1]43512append添加append(x,8)append(x,y)[1]215348[1]2153489replace替换replace(x,1,7)replace(x,c(1,2),7)[1]71534[1]77534提示:利用help函数可以查看R语言文档。例如,当不知道replace函数的功能时,输入help(replace),在RStudio右下的help窗口中即显示repalce函数的详细说明。(2)矩阵矩阵运算虽然是统计理论的重要工具,但与基本统计方法的应用关系不大,因此没有矩阵运算基础可以跳过本部分。R语言中的矩阵基本等同与数学中的矩阵。R语言中使用matrix函数创建一个矩阵。matrix函数有三个参数,(数值向量,行数,列数)。如:输入x-matrix(c(1,2,3,4),2,2)x输出两行两列的矩阵及其行号和列号[,1][,2][1,]13[2,]24matrix还有第四个参数byrow,即数据向量转为矩阵时数据的排列顺序,其默认值为FALSE,如:输入LiuChen11x-matrix(c(1,2,3,4),2,2,TRUE)输出[,1][,2][1,]12[2,]34a.矩阵运算矩阵的+-*/运算是对矩阵元素的运算,如:输入x-matrix(c(1,2,3,4),2,2)x*2输出[,1][,2][1,]26[2,]48输入x-matrix(c(1,2,3,4),2,2)y-matrix(c(5,6,7,8),2,2)x+y输出[,1][,2][1,]610[2,]812LiuChen12矩阵运乘法运算符号为%*%,如:输入x-matrix(c(1,2,3,4),2,2)y-matrix(c(5,6,7,8),2,2)x%*%y输出[,1][,2][1,]2331[2,]3446b.矩阵下标矩阵下标类似向量的下标。所不同的是,向量是两维的,下标包括两个数字,表示相应元素所在的行和列,如:输入x-matrix(c(1,2,3,4),2,2)x[1,2]输出第一行第二列元素[1]3c.常用的矩阵函数函数名功能diag取对角元素/生成对角阵solve求逆/解线性方程组LiuChen13eigen求特征向量/特征值rank求秩(元素位置,矩阵秩可用qr()$rank)t转置det行列式(3)数组R语言中,数组是向量和矩阵的推广,向量和矩阵是数组的特殊形式。向量是一维数组,而矩阵是二维数组。利用array()函数创建数组,其参数为(数据向量,维数向量)如:输入x-array(c(1,2,3,4),c(2,2))x上述语句输入数据为1,2,3,4,生成两行两列的数组,输出为[,1][,2][1,]13[2,]24所以,array(c(1,2,3,4),c(2,2)等价于matrix(c(1,2,3,4),2,2)。利用array函数可以生成更高维的数组。注意:向量、矩阵和数组中也可以包含其他的数据类型,如字符型、逻辑型、空值。(4)列表向量、矩阵和数组要求元素必须为同一基本数据类型。如果一组数据需要包含多种类型的数据,则可以使用列表,如:输入x-list(a=1,b=2,c=3)LiuChen14输出为$a[1]1$b[1]2$c[1]3与向量、矩阵和数组相比,列表没有下标号,但是每个数据都有一个名字。数组使用下标来引用元素,而列表用名字来引用元素,如:输入x-list(a=1,b=2,c=3)x$a输出[1]1列表与向量、矩阵和数组的另一个重要区别是,向量、矩阵和数组的元素只能是一个简单基本数据,而列表的元素还可以是其他的其他各种数据对象,比如向量、矩阵、数组或者另一个列表,如:输入x-list(a=1,b=c(1,2,3),c=ab,d=c(a,c,c),e=matrix(c(1,2,3,4),2,2),f=list(a=1,b=2))x这是一个复杂的列表,a为数字,b为向量,c为字符,d为字符向量,e为矩阵,而fLiuChen15为另一个列表。输出为$a[1]1$b[1]123$c[1]a$d[1]acc$e[,1][,2][1,]13[2,]24$f$f$a[1]1$f$b[1]2列表的名字可以连续引用,输入x$f$a输出为[1]1LiuChen16(5)数据框数据框是另一种可以有不同基本数据类型元素的数据对象。简单来说,一个数据框包含多个向量,向量的数据类型可以不一样。因此,数据框是介于数组和列表之间的一种数据对象,与矩阵相比它可有不同数据类型,与列表相比它只能包含向量,而且这些向量的长度通常是相等的。a.创建数据框R语言使用data.frame()来创建数据框,如:输入x-c(张三,李四,王五,赵六)y-c(男,女,女,男)z-c(89,90,78,67)data.frame(x,y,z)输出为xyz1张三男892李四女903王五女784赵六男67其中,每行行首的数字是该行名字,可以使用row.names()来重新为每行命名。输入row.names(student)-c(a,b,c,d)studentLiuChen17输出xyza张三男89b李四女90c王五女78d赵六男67当然,数据框中每列向量也可以有名字,如:输入data.frame(姓名=x,性别=y,分数=z)输出为姓名性别分数1张三男8

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功