1、R语言介绍
1.1R简介与安装
R是用于统计,绘图的语言和操作环境。直接下载安装就可以了。
1.2R的使用
(1)R是区分大小写的解释型语言
(2)在命令提示符>后输入命令执行一条命令
(3)可一次性执行脚本文件中的一组命令
(4)R包括很多数据类型:向量、矩阵、数据框(与数据集类似)、列表(各种对象的集合)
(5)R的多数功能由程序内置函数和用户自编函数提供。
(6)一次交互式会话期间的所有数据都保存在内存中
(7)基本函数是默认的,高级函数需要按需加载程序包
(8)R语句由函数和赋值构成
(9)<-
为对象赋值的意思,例如a <- 5
(10->
与<-是一样的意思,只是反转了赋值方向
(11)=
也可以赋值,但是等号赋值会出现问题,不推荐
(12)#
注释
1.2.1新手上路
(1)c()
将参数组合成一个向量或列表,例如age <- c(1, 3, 5, 7, 9)
就是将age这个对象赋予1,3,5,7,9这个数字列表
(2)mean()
均数
(3)sd()
标准差
(4)cor()
相关度
(5)plot()
散点图图表
(6)q()
退出R
(7)demo()
直接运行查看R所有能制作的图形
(9)可单独参看图形:demo(graphics)、demo(Hershey)、demo(persp)、demo(image)
例如:
> age <- c(1,3,5,2,11,9,3,9,12,3)
> weight <- c(4.4,5.3,7.2,5.2,8.5,7.3,6.0,10.4,10.2,6.1)
> mean(weight)
[1] 7.06
> sd(weight)
[1] 2.077498
> cor(age,weight)
[1] 0.9075655
> plot(age,weight)
> q()
上面的例子是给age和weight分别赋予了两个数字列表,求出了平均数7.06,标准差2.08和相关度0.91,画出age和weight的散点图,最后退出R。
1.2.2获取帮助
help.start()
打开帮助首页
help('foo')或?foo
查看函数foo的帮助(引号可以忽略)
help.search("foo")或??foo
以函数foo为关键词搜索本地帮助文档
example("foo")
函数foo的使用示例
RSiteSearch("foo")
以foo为关键词搜索在线文档和邮件列表存档
apropos("foo", mode="function")
列出名称中含有foo的所有函数
data()
列出当前已加载所含的所有可用示例数据集
vignette()
列出当前已安装包中所有可用的vignette文档
vignette()
为主题foo显示指定的vignette文档
1.2.4工作空间
工作空间
工作空间是R当前的工作环境,可以储存可以使用的所有对象(向量、矩阵、数据框和列表等)。结束R会话后可以保持为镜像,下次直接调用,对于持续性的完成任务非常有用。
上下方向键查看已输入命令的历史记录
如果需要读入一个不在当前目录下的文件,需要输入完整路径,记得用引号闭合目录名和文件名
目录要使用正斜杠/,反斜杠\是作为转义符
工作空间常用函数
getwd()
显示当前的工作目录(工作空间储存目录)
setwd("mydirectory")
修改当前的工作目录为mydirectory
dir.create(C:/my)
在C盘中创建一个my的目录
ls()
列出当前工作空间中的对象
rm(objectlist)
移除(删除)一个或多个对象
help(options)
显示可用选项的说明
options()
显示或设置当前选项
history(#)
显示最近使用过的#个命令(默认值为25)
savehistory("myfile")
保存命令历史到文件myfile中(默认值为.Rhistory)
loadhistory("myfile")
载入一个命令历史文件(默认值为Rhistory)
save.image("myfile")
保存工作空间到文件myfile中(默认值为.RData)
save(objectlist, file="myfile")
保存指定对象到一个文件中
load("myfile")
读取一个工作空间到当前会话中(默认值为.RData)
q(()
退出R,将询问是否保存工作空间
用于管理R工作空间的命令使用示例:
setwd("C:/myprojects/projectl")
options()
options(digits=3)
x <- runif(20)
summary(x)
hist(x)
savehistory()
save.image()
q()
首先,当前工作目录被设置为C:/myprojects/project1,当前的选项设置情况将显示出来,而数字将被格式化,显示为具有小数点后三位有效数字的格式。然后,我们创建了一个包含20个均匀分布随机变量的向量(x <- runif(20)),生成了此数据的摘要统计量和直方图(summary(x)、hist(x))。最后,命令的历史记录保存到文件.Rhistory中,工作空间(包含向量x)保存到文件.RData中,会话结束。
1.2.4输入和输出
输入
source()
在当前会话中执行一个在当前目录下的R脚本文件
例如:source(myscript.R)
将执行一个含在文件myscript.R中的R语句集合
文本输出
sink("filename")
输出重定向到文件filename中,默认会覆盖以存在的文件
append=TRUE
将文本追加到文件后,而不是覆盖
split=TRUE
将输出同时发送到屏幕和输出文件中,不加参数调用sink()
将仅向屏幕返回输出结果
图形输出
使用sink()只能重定向文本输出对图形没影响,重定向图形输出,使用下面的函数列表即可,最后dev.off()
将输出返回到终端
pdf("filename.pdf")
PDF文件
win.metafile("filename.wmf")
Windows图元文件
png("filename.png")
PBG文件
jpeg("filename.jpg")
JPEG文件
bmp("filename.bmp")
BMP文件
postscript("filename.ps")
PostScript文件
例子
source("script1.R")
执行script1.R中的R代码,结果打印在屏幕上
sink("myoutput, append=TRUE, split=TRUE")
pdf("mygraphs.pdf")
source(script2.R)
执行script2.R中的R代码,结果也打印在屏幕上,并且文本输出将被追加到文件myoutput中,图形输出保存到文件mygraphs.pdf中
sink()
dev.off()
source("script3.R")
执行script3.R中的R代码,结果将打印在屏幕上。这一次没有文本或图形输出保存到文件中。
整个过程如下图:
1.3包
包是R函数、数据、预编译代码以一种定义完善的格式组成的集合。
库是存储包的目录
.libPaths()
能够显示库所在位置
library()
显示库中有那些包
search()
可以告诉你哪些包已加载并可使用
1.3.1包的安装
R自带了一些默认包,要使用高级函数就需要下载包
install.packages()
()不加参数的话,会显示CRAN镜像站点列表,选择其中一个镜像站点将看到可用包的列表,选择其中一个包即可进行下载和安装。
install.packages("gclus")
下载和安装gclus包,知道其他包的名称也可以直接输入名称进行下载和安装
update.packages()
更新已经安装的包
installed.packages()
列出安装的包以及版本号、依赖关系等信息
1.3.2包的载入
安装好包只是放到了库中,要在R会话中使用还需要载入。
library()
载入包
可以给R设置启动时自动载入某些常用包
1.3.3包的使用
载入一个包后,就可以使用这个包中包含的函数和数据集了
包中往往提供了演示性的小型数据集和示例代码,可以尝试这些新功能
帮助系统包含了每一个函数的一个描述(同时带有示例)
help(package="package_name")
输出某个包的简短描述以及包中的函数名称和数据集名称的列表
help()
可以查看其中任意函数或数据集的更多信息,这些信息也能从PDF帮助手册的形式从CRAN下载。
1.4批处理
linux或OS系统下输入命令:
R CMD BATCH options infile outfile
其中infile是包含了要执行的R代码所在文件的文件名,outfile是接收输出文件的文件名,options部分则列出了控制执行细节的选项。依照惯例,infile的扩展名是.R,outfile的扩展名为.Rout。
windows下输入:
"C:\Program Files\R\R-2.13.0\bin\R.exe" CMD BATCH
--vanilla --slave "c:\my projects\myscript.R"
将路径调整为R.exe所在的相应位置和脚本文件所在位置。要进一步了解如何调用R,包括命令行选项的使用方法,请参CRAN(http://cran.r-project.org)上的文档“Introduction to R”中文是R导论(https://cran.r-project.org/doc/contrib/Ding-R-intro_cn.pdf)
1.5将输出用为输入——结果的重用
R的一个非常实用的特点是,分析的输出结果可轻松保存,并作为进一步分析的输入使用。
1.6大数据的处理
大数据的处理要注意数据集的大小和要应用的统计方法。R可以处理GB级到TB级的数据分析问题,但需要专门的手段。
1.7示例
help.start()
install.packages("vcd")
help(package="vcd")
library(vcd)
help(Arthritis)
Arthritis
example(Arthritis)
q()
(1)打开帮助首页
(2)安装vcd包
(3)列出这个包可用函数和数据集
(4)载入包并阅读数据集Arthritis
(5)显示Arthritis的内容
(6)运行Arthritis自带示例
(7)退出