R语言初学者指南学习摘要.docx

上传人:b****7 文档编号:11369944 上传时间:2023-02-28 格式:DOCX 页数:22 大小:25.44KB
下载 相关 举报
R语言初学者指南学习摘要.docx_第1页
第1页 / 共22页
R语言初学者指南学习摘要.docx_第2页
第2页 / 共22页
R语言初学者指南学习摘要.docx_第3页
第3页 / 共22页
R语言初学者指南学习摘要.docx_第4页
第4页 / 共22页
R语言初学者指南学习摘要.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

R语言初学者指南学习摘要.docx

《R语言初学者指南学习摘要.docx》由会员分享,可在线阅读,更多相关《R语言初学者指南学习摘要.docx(22页珍藏版)》请在冰豆网上搜索。

R语言初学者指南学习摘要.docx

R语言初学者指南学习摘要

R语言初学者指南

第1章引言

函数

功能

示例

访问帮助文件

boxplot

#

添加注释

#Addyourcommentshere

boxplot

生成盒形图

boxplot(y)boxplot(y~factor(x))

log

自然对数

log

(2)

log10

以10为底的对数

log10

(2)

library

载入包

library(MASS)

setwd

设置工作目录

setwd(“C:

/AnyDirectory”)

q

关闭R

q()

citation

提供对R的引用

citation()

第二章R中的数据输入

录入数据,并把数据系统地转化为标量(单值)、向量、矩阵、数据框或列表。

如何从Excel、ascii文件、数据库和其他统计程序中载入数据。

R中的第1步

小型数据库中的数据录入

#符号“<-”相当于“=”

#变量名中不能出现“%,^,&,*,!

,,+,-,(),[],#,<>”因为这些符号中的大部分都是运算符。

#如果定义好了:

><-sqrt(wing1)

若要现实的值,只需输入:

>

或者把需要执行的命令放在圆括号内:

><-sqrt(wing1))

应用c函数连接数据

C()函数可以完成一个变量中存储多个值

例如:

>Wingcrd<-c(59,55,,55,,,53,55)

如果查看Wingcrd的第一个值,则需要

>Wingcrd[1]

如果需要查看Wingcrd前五个值,则需要

>Wingcrd[1:

5]

如果需要查看Wingcrd除了第二个值以外的其他值,则需要

>Wingcrd[-2]

-负号表示删除了这个值

R有很多的内置函数,最基本的有sum,mean,max,min,median(中位数),var(方差)和sd(标准差)等。

>sum(Wingcrd)

或者存在一个新的变量中,

><-sum(Wingcrd)

>

输入其他三组数据:

>Tarsus=c,,,,,,,

>Head=c,,,,,,,NA)

>Wt=c,,,,,,

R中的变量名最好使用大写字母开头,这样可以避免将它和一些内部函数名混淆。

注意,数据里有一只鸟的头的尺寸是没有测量的,我们用NA表示,这时我们调用内部函数计算就会出现错误。

在向量中有一个缺失值的话,默认选项“=FALSE”(rm表示移除remove),将会导致R函数返回NA,为了避免此种情况,我们用“=TRUE”,

>sum(Head,=TRUE)

我们将接着学习如何连接这4个变量中的数据,

(1)c,cbind和rbind函数;

(2)matrix和vector函数;(3)数据框;(4)列表。

使用c,cbind和rbind结合变量

Wingcrd翼弦,Tarsus踝骨,Head头,Wt体重,四组数据,每组8个值

c函数可以用来连接这些数据,同时连接这些数据中的8个值:

>BirdData<-c(Wingcrd,Tarsus,Head,Wt)

Data是R中的一个内部函数,因而不能直接用Data.

>Id<-c(1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4)

Id向量的作用是指出具有相似Id值的观察值属于同一种形态变量。

上面的命令过于繁琐,可以这么做:

>Id<-rep(c(1,2,3,4),each=8)

符号rep代表重复(repeat)

还可以以下用法:

>Id<-rep(1:

4,each=8)

>a<-seq(from=1,to=4,by=1)

>rep(a,each=8)

接着生成一个VarNames的新变量:

>Varnames=c("Wingcrd","Tarsus","Head","Wt")

>Varnames

>Id2=rep(Varnames,each=8)

>Id2

c函数是我们结合数据或者变量的一种选择,另一种选择是cbind函数,它的作用是将所结合的变量以列的形式输出。

如:

>Z<-cbind(Wingcrd,Tarsus,Head,Wt)

>Z

当我们有特殊需求时:

1、访问Z的第一列:

>Z[,1]

或者>Z[1:

8,1]

2、访问Z的第二行:

>Z[2,]或者>Z[2,1:

4]

>dim(Z)#表示Z的行数和列数

使用vector函数结合数据

vector函数的作用与c函数类似,它可以用来代替c函数。

数据的载入

Excel中的数据载入

两种方法:

第一种(常用):

1、将EXCEL中的数据准备好;

2、将其提取到制表符分隔的ascii文件中;

3、关闭EXCEL;

4、使用函数将数据载入到R中。

第二种:

是一个专门的R程序包,RODBC,它可以访问EXCEL中选定的行和列。

样本——变量形式:

列表示各种变量,如性别、年龄、成绩等,行表示各种样本、观察值、案例、对象或其他称之为样本单元的东西。

步骤:

在EXCEL中,“文件”——“另存为”——“保存类型”——选择“文本文件(制表符分隔)”,将EXCEL中的数据提取到一个制表符分隔的ascii文件中,注意存储位置。

(注意,此操作前,必须让EXCEL中的没有特殊的数据,也不可有空内容或者包含空格的名称,不然会出现NA)

函数的使用

>Squid<-(file=“C:

/RBOOK/(存储目录)”,header=TRUE)

数据以数据框的形式存储到Squid,名称尽量简单、明确

而中的header=TRUE,表示第一行包括了标签,如果文件中红没有标签,可以为header=FALSE.

第三章访问变量和处理数据子集

访问数据框变量

>setwd(“C:

\Users\winner\Desktop\学习札记”)#设置默认存储目录

>Squid<-(file=“C:

\Users\winner\Desktop\学习札记\”,header=TRUE)

1、用names命令查看正在处理的变量

>names(Squid)

str函数

str命令告诉我们数据框中每个变量的属性

>str(Squid)

和names和str函数结合在一起使用

函数中的数据参数

>M1<-1m(GSI~factor(Location)+factor(Year),

data=Squid)

直接用(data=)来告诉R,变量在数据框Squid中。

但并不是所有的函数都可以如此做,因为有的函数美元data参数。

$符号

如果一个函数没有data参数,可以用$符号:

>Squid$GSI

还可以:

>Squid[,6]#第6列也就是变量GSI那一列

计算均值:

两种方法都可以但建议用第一种

>mean(Squid$GSI)

attach函数

用attach命令把Squid添加到R的搜索路径里,就可以直接输入变量而不加其他函数,就能看到该变量的值了。

>attach(Squid)

>GSI

>boxplot(GSI)

>mean(GSI)

attach虽然比较好,但是如果有两个具有相同变量名称的数据框,就会发生问题。

1、为了避免复制变量,不要输入attach(Squid)两次;

2、如果你使用attach命令,确保你使用唯一的变量名称,避免使用月份、位置等常见的名称;

3、如果你载入多个数据集,并且一次只处理一个数据集,考虑使用detach命令从R的搜索路径里移除一个数据框。

如:

>detach(Squid)

访问数据子集

如果我只想处理某个位置的雌性数据,为了提取数据子集,我们需要知道性别是如何编码的,可以键入:

>Squid$Sex

结果显示了变量Sex的所有值,可以用unique命令显示这个变量里有多少个唯一值:

>unique(Squid$Sex)

出现1表示雌性,2表示雄性

为了访问所有的雄性数据,使用:

>Se1<-Squid$Sex==1#生成一个向量Se1与Sex具有相同的长度,且Sex的值为1时的值

>SquidM<-Squid[Se1,]#选择Squid中Se1等于TRUE,并把我们选择的数据存储到SquidM

>SquidM

上述命令也可以写为:

>Squid<-Squid[Squid$Sex==1,]

>Squid

若Location上的值有1、2、3、4这四个,我们想提取1、2、3的数据,我们可以使用符号|表示或,!

=表示不等于。

>Squid123<-Squid[Squid$Location==1|Squid$Location==2|Squid$Location==3,]

>Squid123<-Squid[Squid$Location!

=4,]

>Squid123<-Squid[Squid$Location<=3,]

>Squid123<-Squid[Squid$Location>=1&

Squid$Location<=3,]

|表示“或”;&表示“且”;!

=表示“不等于”;==为逻辑为/逻辑等于

数据排序

按月份由低到高排列:

>Ord1<-order(Squid$Month)

>Squid[Ord1,]

使用相同的标识符组合两个数据集

几个不同的数据集,但是每个数据集里都有1个或几个相同的变量,就可以将这几个数据集组合起来。

merge函数

>setwd(“C:

/RBOOK/”)

>Sql<-(file=“”,

header=TURE)

>Sql<-(file=“”,

header=TURE)

>SquidMerged<-merge(Sq1,Sq2,by=“Sample”)

>SquidMerged

merge命令采用两个数据框Sq1和Sq2作为参数,并使用变量Sample作为相同的标识符合并两个数据集。

输出数据

函数可以把数字输出到ascii文件。

提取雄性数据,并把它输出到文件,

>SquidM<-Squid[Squid$Sex==1,]

>(SquidM,

File=“”,

Sep=““,quote=FALSE,append=FALSE,na=”NA”)

SquidM为想输出的变量,或者说文件名

Sep=““保证数据用空格隔开

quote=FALSE消除字符串的引号标志

na=”NA”指定缺失值的代替

append=FALSE打开一个新文件

函数

功能

示例

把一个变量写入到ascii文件

(Z,file=””)

order

确定数据的顺序

Order(x)

merge

合并两个数据框

merge(x,y,by=”ID”)

attach

使数据框里的变量可以利用

attach(MyData)

str

显示一个对象的内部结构

str(MyData)

factor

定义变量作为因子

factor(x)

第4章简单的函数

tapply函数

载入数据,并获取变量的基本信息

>setwd(“C:

/RBOOK/”)#设定默认目录

>Veg<-(file=””,header=TRUE)#将名字为Vegetation2的ascii文件的数据转为Veg的数据框

>names(Veg)#查看Veg内的数据

计算每个时间截面的均值(mean)——笨方法

以下代码计算了每个截面的平均丰富度和总的平均丰富度

>m<-mean(Veg$R)

>m1<-mean(Veg$R[Veg$Transect==1])

>m2<-mean(Veg$R[Veg$Transect==2])

>m3<-mean(Veg$R[Veg$Transect==3])

>m4<-mean(Veg$R[Veg$Transect==4])

>m5<-mean(Veg$R[Veg$Transect==5])

>m6<-mean(Veg$R[Veg$Transect==6])

>m7<-mean(Veg$R[Veg$Transect==7])

>m8<-mean(Veg$R[Veg$Transect==8])

>c(m,m1,m2,m3,m4,m5,m6,m7,m8)

更高效地计算每个时间截面的均值——tapply

tapply只需一行命令即可完成上述命令达到的效果

>tapply(Veg$R,Veg$Transect,mean)

还可以写为:

>tapply(X=Veg$R,INDEX=Veg$Transect,FUN=mean)

除了求均值,还可以对其求标准差(sd函数)、方差(var函数)、长度(length函数)等

>Me<-tapply(Veg$R,Veg$Transect,mean)

>Sd<-tapply(Veg$R,Veg$Transect,sd)

>Le<-tapply(Veg$R,Veg$Transect,length)

>cbind(Me,Sd,Le)

sapply函数和lapply函数

sapply和lapply函数不用多次输入同一个函数命令

格式如下:

>sapply(Veg[,5:

9],FUN=mean)

计算5-9这个五个变量的均值

tapply计算的是一个变量观察值子集的均值(或其他函数),而lapply和sapply函数计算的是一个或多个变量全部观察值得均值(或其他函数)。

FUN后面接要计算的函数

lapply和sapply的区别在于输出的不同,

>lapply(Veg[,5:

9],FUN=mean)

输出的结果的排列不同

lapply函数输出的是一个列表,而sapply函数的输出是一个向量,我们可以根据对输出格式的要求来选择适当的函数。

summary函数

summary命令的结果给出了变量的最小值、第一四分位数、中位数、平均值、第三四分位数和最大值。

它的参数可以是一个变量、数据框或者cbind命令的输出。

>Z<-cbind(Veg$R,Veg$ROCK,Veg$LITTER)

>colnnames(Z)<-c(“R”,“ROCK”,“LITTER”)

>summary(Z)

下面的命令,也可以实现同样的功能:

>summary(Weg[,c(“R”,“ROCK”,“LITTER”)])

或者

>summary(Weg[,c(5,6,7)])

table函数

table函数的作用是用来了解每个农场提供抽样动物的数量,每个性别和年份观察值的数量。

>table(Deer$Farm)

>table(Deer$Sex,Deer$Year)

函数

功能

示例

tapply

根据x的不同水平对y使用FUN的函数

tapply(y,x,FUN=mean)

sapply

对y的每一个变量使用FUN的函数

sapply(y,x,FUN=mean)

lapply

对y的每一个变量使用FUN的函数

lapply(y,x,FUN=mean)

sd

计算y的标准差

sd(y)

length

确定y的长度

length(y)

summary

计算基本信息

summary(y)

table

计算列联信息

table(x,y)

第5章基础绘图工具简介

plot函数——散点图

绘制物种丰富度对底层变量“裸露土壤”记为BARESOIL的图形

>setwd(“C:

/RBOOK/”)

>Veg<-(file=“”,header=TRUE)

>plot(Veg$BARESOIL,Veg$R,xlab=”BARESOIL”,ylab=”R”)

plot命令的第一个参数显示在水平轴上,第二个参数显示在垂直轴上。

首先是因变量(反应变量),其后是自变量(解释变量),习惯上垂直轴绘制反应变量,水平轴绘制解释变量。

添加标题和x、y轴标签,以及设置x、y轴坐标界限:

>plot<-(x=Veg$BARESOIL,y=Veg$R,

xlab=“Exposedsoil”,

ylab=“Speciesrichness”,main=“Scatterplot”,

xlim=c(0,45),ylim=c(4,19))

符号、颜色和尺寸

改变绘图字符

通过pch取不同的值,得到不同的绘图字符pch共有1-20个不同的取值

以16为例(实心圆)

>plot<-(x=Veg$BARESOIL,y=Veg$R,

xlab=“Exposedsoil”,

ylab=“Speciesrichness”,main=“Scatterplot”,

xlim=c(0,45),ylim=c(4,19),pch=16)

改变绘图符号的颜色

>plot<-(x=Veg$BARESOIL,y=Veg$R,

xlab=“Exposedsoil”,

ylab=“Speciesrichness”,main=“Scatterplot”,

xlim=c(0,45),ylim=c(4,19),pch=16,

col=2)

colors:

2红色3绿色

改变绘图符号的尺寸

绘图符号的尺寸可以通过cex选项改变cex的缺省值为1,改为则为原来的倍

>plot<-(x=Veg$BARESOIL,y=Veg$R,

xlab=“Exposedsoil”,

ylab=“Speciesrichness”,main=“Scatterplot”,

xlim=c(0,45),ylim=c(4,19),

pch=16,cex=)

添加一条平滑线

通过使用lines命令在图形上添加合适的平滑线

>plot<-(x=Veg$BARESOIL,y=Veg$R,

xlab=“Exposedsoil”,

ylab=“Speciesrichness”,main=“Scatterplot”,

xlim=c(0,45),ylim=c(4,19))

><-loess(R~BARESOIL,data=Veg)

>Fit<-fitted

>lines(Veg$BARESOIL,Fit)

函数

功能

示例

plot

y对x的图形

plot(y,x,xlab=”Xlabel”,xlim=c

(1),pch=1,main=”Main”,ylim=c(0,2),ylab=”Ylabel”,col=1)

lines

在已存在的图形上添加线

lines(x,y,lwd=3,lty=1,col=1)

order

确定数据的顺序

order(x)

loess

使用LOESS平滑

M<-loess(y~x)

fitted

得到拟合值

fitted(M)

第6章循环与函数

假设你有1000个数据集,对于每一个数据集你需要绘制一张图,并把它存为JPEG格式。

如果手动完成这个任务将花费很多时间,此时,一个能够不需要人们干涉就能自动执行任意次相同或类似命令的装置就是非常有价值的。

循环恰好可以用来解决这种问题,对1000个数据集可以进行这样的处理:

i从1变到1000

提取第i个数据集

对于第i个数据集选取适当的图像标签

针对第i个数据集作图

将i个数据集的图像存储起来

循环结束

循环

任务:

写一个关于这些数据的报道,并且针对每一个鸟巢绘制一个同胞协商对到达时间的jpeg格式的散点图,现在有27个鸟巢,所以你需要绘制并存储27张图。

像建筑师那样设计代码

大致步骤:

1、载入数据,熟悉变量名,使用,names和str命令;

2、提取一个鸟巢的数据,对于这个子集绘制出同胞协商对到达时间的散点图;

3、添加图像的标题以及x轴和y轴的坐标轴名称。

此鸟巢的名字应该包含在主标题中。

4、提取第二个鸟巢的数据,确定需要对原始图像做哪些修改;

5、确定如何将图像存储为jpeg格式;

6、写一个可以提取第i个鸟巢数据的循环,使用第i个鸟巢的数据绘制图像,并将其存储为一个具有易识别的名字的jpeg格式图片。

第1步:

载入数据

载入所需数据,给出变量名和它们的状态

>setwd(“C:

/RBOOK/”)

>Owls<-(file=“”,header=TRUE)

>names(Owls)

>str(Owls)

第2步和第3步:

绘制散点图并添加标签

弄清楚这个鸟巢的名字:

>unique(Owls$Nest)

给出了27个鸟巢的名字

提取一个鸟巢的数据

><-Owls[Owls$Nest==”AutavauxTV”,]

这个鸟巢所提取的数据为

为了绘制散点图,需要提取中到达时间和协商行为的数据

><-Owls[Owls$Nest==“AutavauxTV”,]

>plot(x=$ArrivalTime,

y=$NegPerChick,

xlab=“ArrivalTime”,main=“AutavauxTV”

ylab=“Negotiationbehaviour”)

第4步:

设计通用代码

我们将相同的步骤应用于另外一个鸟巢的数据,针对第二个鸟巢,代码只需要做很小的修改

><-Owls[Owls$Nest==“Bochet”,]

>plot(x=$ArrivalTime,

y=$NegPerChick,

xlab=“ArrivalTime”,

ylab=“Negotiationbehaviour”,main=“Bochet”)

以此类推,剩下还有25个鸟巢,这些命令还要修改25次,简化一下:

用替换或者

><-Owls[Owls$Nest==“Bochet”,]

>plot(x=$ArrivalTime,

y=$NegPerChick,

xlab=“Arriv

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

当前位置:首页 > 求职职场 > 简历

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

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