R语言傻瓜教程1基础Word格式.docx

上传人:b****3 文档编号:16421416 上传时间:2022-11-23 格式:DOCX 页数:18 大小:43.19KB
下载 相关 举报
R语言傻瓜教程1基础Word格式.docx_第1页
第1页 / 共18页
R语言傻瓜教程1基础Word格式.docx_第2页
第2页 / 共18页
R语言傻瓜教程1基础Word格式.docx_第3页
第3页 / 共18页
R语言傻瓜教程1基础Word格式.docx_第4页
第4页 / 共18页
R语言傻瓜教程1基础Word格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

R语言傻瓜教程1基础Word格式.docx

《R语言傻瓜教程1基础Word格式.docx》由会员分享,可在线阅读,更多相关《R语言傻瓜教程1基础Word格式.docx(18页珍藏版)》请在冰豆网上搜索。

R语言傻瓜教程1基础Word格式.docx

此时,变量a的值就为2。

2->

a的功能与a<

-2一样。

赋值符号也可以用=替代,但是在某些情况下会出错,所以不建议在R语言中使用。

4.R语言数据类型

4.1基本数据类型

R语言中基本数据类型是指仅包含一个数值的数据类型,主要包括数值型、字符型、逻辑型、空值等。

(1)数值型

如1,3.14等能够进行数学运算的数字。

(2)字符型

即文本数据,需放在双引号或单引号之间,如"

a”、'

abc'

、"

张三"

特别提示,这里的单引号和双引号都是英文输入法下的双引号和单引号,中文的符号只能算是普通文本。

在各种编程语言中,中文标点都只能作为同普通文本一样的字符使用,代码中不应出现,如下代码会出现错误:

-“helloR”

y<

-‘helloR’

下面是正确代码(注意引号):

-"

helloR"

-'

helloR'

用中文标点符号替代英文符号是初学编程的人最容易出现的错误,需特别注意以免打击学习积极性。

(3)逻辑型

逻辑型数据只有两个取值TRUE和FALSE,TRUE和FALSE必须是大写的。

TRUE和FALSE可以分别简写为T和F,也必须大写。

如:

-TRUE

-FALSE

(4)空值

在统计数据中常常会出现一些缺失的值,R语言中用一个特殊的值NA(大写)来表示。

NA与其他数据的运算结果都是NA。

-NA

有时候,不能确定一个变量是否是空值,R语言提供了一个函数is.na()用来判断是否空值,如:

is.na(x)

结果为TRUE。

4.2数据对象

R语言中数据对象是指包含一组数值的数据类型,主要包括向量、矩阵、数组、列表、数据框。

(1)向量

向量是由相同基本类型数值组成的序列,可以认为其等同于数学中的向量,在R语言中向量的使用相当频繁。

在R语言中使用函数c()来创建一个向量,如:

-c(1,2,3,4,5)

x

输出为:

[1]12345

其中[1]为输出内容的行号。

a.向量运算

向量的加减乘除运算是对向量元素的加减乘除运算。

输入

c(1,2,3,4)

x+1

输出为

[1]2345

-c(1,2,3,4)

-c(1,1,1,1)

x+y

[1]2345。

b.快速生成有序向量(函数seq和rep)

在需要大量有序数值向量时,为了避免手工输入的麻烦,R语言提供了快速生成的方法。

-1:

10

[1]12345678910

-10:

1

[1]10987654321

上述利用“:

”只能生成步长为1的向量,若要生成任意步长的向量需要使用函数seq(),它有三个参数,(最小值,最大值,步长)。

-seq(1,20,2)

[1]135791113151719

-seq(1,5,0.5)

[1]1.01.52.02.53.03.54.04.55.0

别外一个函数rep()可以通过重复一个基本数值或数值对象多次来创建一个较长的向量,它有二个参数,(数据,重复次数)。

-rep(1,10)

输出

[1]1111111111

-rep(c(1,2,3),3)

[1]123123123

c.向量索引

向量索引也称为向量中数值元素的下标,用来引用向量中的单个数值,用方括号[]表示,如:

x[1]

[1]1

向量索引除了引用单个值之外,还起过滤的作用,如:

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)

mean

均值

mean(x)

[1]3

length

长度

length(x)

var

方差

var(x)

[1]2.5

sd

标准差

sd(x)

[1]1.581139

median

中位数

median(x)

quantile

五个分位数

quantile(x)

0%25%50%75%100%

12345

sort

排序

sort(x)

sort(x,TRUE)

[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函数有三个参数,(数值向量,行数,列数)。

-matrix(c(1,2,3,4),2,2)

输出两行两列的矩阵及其行号和列号

[,1][,2]

[1,]13

[2,]24

matrix还有第四个参数byrow,即数据向量转为矩阵时数据的排列顺序,其默认值为FALSE,如:

-matrix(c(1,2,3,4),2,2,TRUE)

[,1][,2]

[1,]12

[2,]34

a.矩阵运算

矩阵的+-*/运算是对矩阵元素的运算,如:

x*2

[1,]26

[2,]48

-matrix(c(5,6,7,8),2,2)

[1,]610

[2,]812

矩阵运乘法运算符号为%*%,如:

x%*%y

[1,]2331

[2,]3446

b.矩阵下标

矩阵下标类似向量的下标。

所不同的是,向量是两维的,下标包括两个数字,表示相应元素所在的行和列,如:

x[1,2]

输出第一行第二列元素

c.常用的矩阵函数

diag

取对角元素/生成对角阵

solve

求逆/解线性方程组

eigen

求特征向量/特征值

rank

求秩(元素位置,矩阵秩可用qr()$rank)

t

转置

det

行列式

(3)数组

R语言中,数组是向量和矩阵的推广,向量和矩阵是数组的特殊形式。

向量是一维数组,而矩阵是二维数组。

利用array()函数创建数组,其参数为(数据向量,维数向量)如:

-array(c(1,2,3,4),c(2,2))

上述语句输入数据为1,2,3,4,生成两行两列的数组,输出为

所以,array(c(1,2,3,4),c(2,2)等价于matrix(c(1,2,3,4),2,2)。

利用array函数可以生成更高维的数组。

注意:

向量、矩阵和数组中也可以包含其他的数据类型,如字符型、逻辑型、空值。

(4)列表

向量、矩阵和数组要求元素必须为同一基本数据类型。

如果一组数据需要包含多种类型的数据,则可以使用列表,如:

-list(a=1,b=2,c=3)

$a

$b

[1]2

$c

与向量、矩阵和数组相比,列表没有下标号,但是每个数据都有一个名字。

数组使用下标来引用元素,而列表用名字来引用元素,如:

x$a

列表与向量、矩阵和数组的另一个重要区别是,向量、矩阵和数组的元素只能是一个简单基本数据,而列表的元素还可以是其他的其他各种数据对象,比如向量、矩阵、数组或者另一个列表,如:

-list(a=1,b=c(1,2,3),c="

ab"

d=c("

a"

"

c"

),e=matrix(c(1,2,3,4),2,2),f=list(a=1,b=2))

这是一个复杂的列表,a为数字,b为向量,c为字符,d为字符向量,e为矩阵,而f为另一个列表。

[1]123

[1]"

$d

"

$e

$f

$f$a

$f$b

列表的名字可以连续引用,输入

x$f$a

(5)数据框

数据框是另一种可以有不同基本数据类型元素的数据对象。

简单来说,一个数据框包含多个向量,向量的数据类型可以不一样。

因此,数据框是介于数组和列表之间的一种数据对象,与矩阵相比它可有不同数据类型,与列表相比它只能包含向量,而且这些向量的长度通常是相等的。

a.创建数据框

R语言使用data.frame()来创建数据框,如:

-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)<

b"

d"

student

a张三男89

b李四女90

c王五女78

d赵六男67

当然,数据框中每列向量也可以有名字,如:

data.frame(姓名=x,性别=y,分数=z)

姓名性别分数

注意,这些的姓名、性别和分数为变量,所以不能加引号。

b.数据框中数据的引用

获取数据框中的一行或多行:

student[1,]

student[(1:

2),]

获取数据框一列或多列:

student[,1]

[1]张三李四王五赵六

student[,(1:

2)]

xy

a张三男

b李四女

c王五女

d赵六男

还可以用访问列表数据的方式访问数据框:

student$x

同向量的引用一样,可以过滤数据框中的数据,如:

student[student$y>

80,]

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包中的Nile数据导入工作空间。

此外,R语言在工作空间中使用扩展包前,要加载相应的扩展包,使用函数library可加载扩展包,如:

library("

加载扩展包后,其中的数据集就会全部加载到工作空间中,可直接使用。

5.3利用R语言函数导入数据

(1)读入文本文件

read.table("

student.txt"

header=T,sep="

(2)读入csv文件

read.csv("

student.csv"

(3)读入SPSS数据

read.spss("

dataname.sav"

如果数据文件不在当前工作目录中,需要加上正确的相对或绝对路径。

5.4导出数据

(1)导出为文本

write.table(student,"

(2)导出为csv文件

write.csv(student,"

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

is.vector(x)

TRUE

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()查看全部已安装的包

packagename"

)加载名为packagename的包

(.packages())查看已加载的包

install.packages("

)安装名为packagename的包

(2)RStudio中包的管理

RStudio中包的管理更加便捷,在Package子窗口中,如下图所示:

Package子窗口中列出了全部已安装的包,

选中的包为已加载的包(选中没有加载的包即可将其加载)。

点击

可安装新的包。

9.小结

本部分介绍了R及RStudio的安装与运行、R语言的运算符、R语言的基本数据类型(数值,字符,逻辑,空值)、R语言的数据对象(向量,矩阵、列表、数据框)、数据的导入导出、工作空间中数据变量的管理,以及R语言脚本。

虽然涉及到数十个函数,但是它们都很容易记忆和使用,而且也并非需要将它们全都记住,仅需熟练使用其中的15个左或即能满足日常80%的应用。

学习编程需要特别注意两点:

第一,一定要动手实践;

第二,不要死记,灵活使用文档、手册,以及最常使用的百度谷歌。

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

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1