R语言傻瓜教程1基础.docx
- 文档编号:5363395
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:20
- 大小:215.67KB
R语言傻瓜教程1基础.docx
《R语言傻瓜教程1基础.docx》由会员分享,可在线阅读,更多相关《R语言傻瓜教程1基础.docx(20页珍藏版)》请在冰豆网上搜索。
R语言傻瓜教程1基础
R语言傻瓜教程——1基础
0.约定
阴影为代码或R的输出内容。
1.安装
1.1安装R和RStudio
(1)从
(2)从
1.2说明
(1)R语言本身仅提供了命令行工具,一般用户可能会觉得使用不便,所以用RStudio作为工具来使用R语言;
(2)RStudio仅为R的IDE(集成开发环境),依赖于R;
(2)在苹果系统中,启动RStudio时要求安装commandlinetools,在弹出窗口中选择安装即可);
(3)R和RStudio都是免费开放源代码的,所以尽可能在官方网站上下载(R在全球有很多镜像,等同于官网,上述下载地址即其在北京交通大学的镜像)。
2.运行
2.1运行R语言
如果不使用RStudio,双击R语言图标(如下图)即可启动。
启动后如下图所示,在提示符处输入R语言命令。
1.2RStudio启动
RStudio相对于R语言自身提供的命令行工具,使用要便捷得多。
RStudio图标如下图。
启动后RStudio的环境如下图所示。
左侧为同启动R时一样的命行窗口;右上侧为“环境”和“历史”。
环境是指当前R语言的运行环境,也称为工作空间,在使用过程中所创建的变量、数据都在这里列出,而用户在使用过程中输入的命令都在“历史”子窗口中列出。
右侧包括“文件”、“绘图”、“扩展包”、“帮助”、“视图”等子窗口。
相关功能在后续使用过程中再详细说明。
除此之外RStudio还有很多默认没有显示的子窗口,通过顶部菜单view中的选项可以选择显示它们。
1.3退出
在退出时,R和RStudio默认都会弹出窗口询问是否保存工作空间,如果选择保存,则R或RStudio会保存全部的变量、数据等,下次打开R或RStudio时还可以继续使用而不用再次输入。
如下分别为R和RStudio退出时的弹出窗口。
3.R语言运算符号
运算符号:
+(加)、-(减)、*(乘)、/(除)、^(乘方)、%/%整除、%%求余;
逻辑判断符号:
>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、!
=(不等)、==(相等)
逻辑运算符号:
&(逻辑与)、|(逻辑或,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<-"helloR"
y<-'helloR'
用中文标点符号替代英文符号是初学编程的人最容易出现的错误,需特别注意以免打击学习积极性。
(3)逻辑型
逻辑型数据只有两个取值TRUE和FALSE,TRUE和FALSE必须是大写的。
TRUE和FALSE可以分别简写为T和F,也必须大写。
如:
x<-TRUE
y<-FALSE
(4)空值
在统计数据中常常会出现一些缺失的值,R语言中用一个特殊的值NA(大写)来表示。
NA与其他数据的运算结果都是NA。
如:
x<-NA
有时候,不能确定一个变量是否是空值,R语言提供了一个函数is.na()用来判断是否空值,如:
x<-NA
is.na(x)
结果为TRUE。
4.2数据对象
R语言中数据对象是指包含一组数值的数据类型,主要包括向量、矩阵、数组、列表、数据框。
(1)向量
向量是由相同基本类型数值组成的序列,可以认为其等同于数学中的向量,在R语言中向量的使用相当频繁。
在R语言中使用函数c()来创建一个向量,如:
x<-c(1,2,3,4,5)
x
输出为:
[1]12345
其中[1]为输出内容的行号。
a.向量运算
向量的加减乘除运算是对向量元素的加减乘除运算。
输入
x x+1 x 输出为 [1]2345 输入 x<-c(1,2,3,4) y<-c(1,1,1,1) x+y 输出为 [1]2345。 b.快速生成有序向量(函数seq和rep) 在需要大量有序数值向量时,为了避免手工输入的麻烦,R语言提供了快速生成的方法。 如: 输入 x<-1: 10 x 输出为 [1]12345678910 输入 x<-10: 1 x 输出为 [1]10987654321 上述利用“: ”只能生成步长为1的向量,若要生成任意步长的向量需要使用函数seq(),它有三个参数,(最小值,最大值,步长)。 如: 输入 x<-seq(1,20,2) x 输出为 [1]135791113151719 输入 x<-seq(1,5,0.5) x 输出为 [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]123123123 c.向量索引 向量索引也称为向量中数值元素的下标,用来引用向量中的单个数值,用方括号[]表示,如: 输入 x<-c(1,2,3,4,5) x[1] 输出 [1]1 向量索引除了引用单个值之外,还起过滤的作用,如: 输入 x<-c(1,2,3,4,5) x[x>3] 输出x中大于3的数值 [1]45 d.常用的向量函数 函数名 功能 示例,已知x<-c(2,1,5,3,4),y<-c(8,9) 输入 输出 sum 求和 sum(x) [1]15 max 最大值 max(x) [1]5 min 最小值 min(x) [1]1 mean 均值 mean(x) [1]3 length 长度 length(x) [1]5 var 方差 var(x) [1]2.5 sd 标准差 sd(x) [1]1.581139 median 中位数 median(x) [1]3 quantile 五个分位数 quantile(x) 0%25%50%75%100% 12345 sort 排序 sort(x) sort(x,TRUE) [1]12345 [1]54321 rev 倒序 rev(x) [1]43512 append 添加 append(x,8) append(x,y) [1]215348 [1]2153489 replace 替换 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,]24 matrix还有第四个参数byrow,即数据向量转为矩阵时数据的排列顺序,其默认值为FALSE,如: 输入 x<-matrix(c(1,2,3,4),2,2,TRUE) 输出 [,1][,2] [1,]12 [2,]34 a.矩阵运算 矩阵的+-*/运算是对矩阵元素的运算,如: 输入 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,]812 矩阵运乘法运算符号为%*%,如: 输入 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,]3446 b.矩阵下标 矩阵下标类似向量的下标。 所不同的是,向量是两维的,下标包括两个数字,表示相应元素所在的行和列,如: 输入 x<-matrix(c(1,2,3,4),2,2) x[1,2] 输出第一行第二列元素 [1]3 c.常用的矩阵函数 函数名 功能 diag 取对角元素/生成对角阵 solve 求逆/解线性方程组 eigen 求特征向量/特征值 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) 输出为 $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为矩阵,而f为另一个列表。 输出为 $a [1]1 $b [1]123 $c [1]"a" $d [1]"a""c""c" $e [,1][,2] [1,]13 [2,]24 $f $f$a [1]1 $f$b [1]2 列表的名字可以连续引用,输入 x$f$a 输出为 [1]1 (5)数据框 数据框是另一种可以有不同基本数据类型元素的数据对象。 简单来说,一个数据框包含多个向量,向量的数据类型可以不一样。 因此,数据框是介于数组和列表之间的一种数据对象,与矩阵相比它可有不同数据类型,与列表相比它只能包含向量,而且这些向量的长度通常是相等的。 a.创建数据框 R语言使用data.frame()来创建数据框,如: 输入 x<-c("张三","李四","王五","赵六") y<-c("男","女","女","男") z<-c(89,90,78,67) data.frame(x,y,z) 输出为 xyz 1张三男89 2李四女90 3王五女78 4赵六男67 其中,每行行首的数字是该行名字,可以使用row.names()来重新为每行命名。 输入 row.names(student)<-c("a","b","c","d") student 输出 xyz a张三男89 b李四女90 c王五女78 d赵六男67 当然,数据框中每列向量也可以有名字,如: 输入 data.frame(姓名=x,性别=y,分数=z) 输出为 姓名性别分数 1张三男89 2李四女90 3王五女78 4赵六男67 注意,这些的姓名、性别和分数为变量,所以不能加引号。 b.数据框中数据的引用 获取数据框中的一行或多行: 输入 student[1,] 输出 xyz a张三男89 输入 student[(1: 2),] 输出 xyz a张三男89 b李四女90 获取数据框一列或多列: 输入 student[,1] 输出 [1]张三李四王五赵六 输入 student[,(1: 2)] 输出 xy a张三男 b李四女 c王五女 d赵六男 还可以用访问列表数据的方式访问数据框: 输入 student$x 输出 [1]张三李四王五赵六 同向量的引用一样,可以过滤数据框中的数据,如: 输入 student[student$y>80,] 输出 xyz a张三男89 b李四女90 5.数据导入导出 分别介绍利用RStudio导入数据,利用R函数导入导出数据。 初学者可以忽略后一种方法。 假设有文件student.txt以及student.csv,csv文件是以Tab符号分隔的文本文件,Excel数据可以另存为csv文件(Mac系统中建议使用Numbers编辑、导出csv文件,以避免出现乱码)。 这两个文件内容相同: 姓名性别分数 张三男89 李四女90 王五女78 赵六男67 5.1利用RStudio导入数据 顶部菜单选择tools->ImportDataset->FromLocalFile,弹出窗口选择要导入的数据文件,然后弹出如下窗口: 因为数据文件中包含了列名,所以Heading选择yes;文件中列是用逗号分隔的,所以Separator选择Comma,点击Import即可导入数据并保存入student对象。 其他格式文件的导入方法一样。 5.2导入R包中的数据 R的扩展包中常常包含样例数据,这些数据有助于学习扩展包的功能。 此外,datasets包中包含大量的数据,可以用来学习R语言。 要想利用这些数据,就要将它们导入到当前工作空间中来。 可以利用data函数导入扩展包中的数据,如: 输入 data(package="datasets") 该命令导入datasets包中的全部数据。 输入 data() 查看当前工作空间的数据。 输入 data(Nile,package="datasets") 该命令仅将datasets包中的Nile数据导入工作空间。 此外,R语言在工作空间中使用扩展包前,要加载相应的扩展包,使用函数library可加载扩展包,如: library("datasets") 加载扩展包后,其中的数据集就会全部加载到工作空间中,可直接使用。 5.3利用R语言函数导入数据 (1)读入文本文件 read.table("student.txt",header=T,sep=",") (2)读入csv文件 read.csv("student.csv",header=T,sep=",") (3)读入SPSS数据 read.spss("dataname.sav") 注意: 如果数据文件不在当前工作目录中,需要加上正确的相对或绝对路径。 5.4导出数据 (1)导出为文本 write.table(student,"student.txt") (2)导出为csv文件 write.csv(student,"student.csv") 6.工作空间数据管理 6.1查看、删除、编辑数据 a.列出工作空间全部数据变量名 ls() b.删除数据 rm(dataname) c.查看数据(注意大小写) View(dataname) d.查看dataframe前10行 head(dataframe) e.查看dataframe后10行 tail(dataframe) f.编辑数据 edit(dataname)或者fix(dataname) g.删除矩阵或dataframe的行(假设有数据data) data[-1,]#删除第一行 data[c(-1,-2),]#删除第一行和第二行 data[-1: -3,]#删除第一行到第三行 h.删除矩阵或dataframe的列(假设有数据data) data[,-1]#删除第一行 data[,c(-1,-2)]#删除第一行和第二行 data[,-1: -3]#删除第一行到第三行 6.2变量处理 a.dataframe添加一列或合并dataframe data.frame(old_dataframe,new_column) data.frame(dataframe1,dataframe2) b.变量重命名 方法1: edit()或fix()函数打开数据编辑器,点击变量名可以对其进行修改。 方法2: names()函数。 names()函数可以显示dataframe的变量名,也可以通过赋值进行修改,下述代码将第一列变量名字改为new_name: names(dataframe)[1]<-"new_name" c.变量类型判断与转换 类型 判断 转换 数值型 is.numeric as.numeric 字符型 is.character as.character 向量 is.vector as.vector 矩阵 is.matrix as.matrix 数据框 is.data.frame as.data.frame 逻辑型 is.logical as.logical 示例: 输入 x<-c(1,2,3,4) is.vector(x) 输出 TRUE 输入 x<-c("1","2","3","4")#注意,数字加引号就成为字符型数值了 as.numeric(x) 输出 [1]1234 7.R语言脚本 所谓脚本,就是指程序片段。 R语言脚本就是将多条R指令保存为一个脚本文件,用以实现复杂的功能。 7.1创建R语言脚本 选择RStudio顶部菜单中File->NewFile->RScript即可以在RStudio中创建一个脚本文件。 上述小节中在命令行中输入的指令都要以放入脚本中。 需要注意的是,R语言脚本每行只能入一条指令。 如果一定要在一行中放置多条指令则需要用“;”隔开(英文输入法下的分号)。 点击RStuio工具栏中的图标 也可以创建R脚本。 在原生的R语言中,创建脚本选择顶部菜单中File->NewDocument可以创建脚本。 R语言脚本的扩展名为R。 R语言为脚本提供了完整的程序语言语法,如if、for、while等语句,以及函数function定义等,有兴趣可以查找相关资料深入学习。 7.2执行R语言脚本 在RStudio中,点击脚本编辑器顶部的按钮 可以运行脚本中光标所在的行,按钮 运行整个脚本中的全部指令。 若要在命令窗口中运行脚本,用source()函数,如source("myscript.R")。 如果脚本不在当前工作空间中,则需要给出正确的路径。 查看当前工作空间路径使用getwd()函数,也可以使用setwd()来设置新的工作空间。 8.R语言的包 R语言的功能是通过包(package)来实现的,因而其功能可以很容易的被拓展。 正是R语言的这种开放性使得其具有强大的功能和时效性,新的算法被提出之后很快就有相应的拓展包被释放出来。 (1)R语言中包的管理 library()查看全部已安装的包 library("packagename")加载名为packagename的包 (.packages())查看已加载的包 install.packages("packagename")安装名为packagename的包 (2)RStudio中包的管理 RStudio中包的管理更加便捷,在Package子窗口中,如下图所示: Package子窗口中列出了全部已安装的包, 选中的包为已加载的包(选中没有加载的包即可将其加载)。 点击 可安装新的包。 9.小结 本部分介绍了R及RStudio的安装与运行、R语言的运算符、R语言的基本数据类型(数值,字符,逻辑,空值)、R语言的数据对象(向量,矩阵、列表、数据框)、数据的导入导出、工作空间中数据变量的管理,以及R语言脚本。 虽然涉及到数十个函数,但是它们都很容易记忆和使用,而且也并非需要将它们全都记住,仅需熟练使用其中的15个左或即能满足日常80%的应用。 学习编程需要特别注意两点: 第一,一定要动手实践;第二,不要死记,灵活使用文档、手册,以及最常使用的百度谷歌。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 傻瓜 教程 基础
![提示](https://static.bdocx.com/images/bang_tan.gif)