R语言教程 - R语言的安装与使用

R是统计分析软件,在数据分析、数据挖掘领域有优势;与SAS比最大的好处就是免费,其次是有各种现成的程序包可用,再次是具有极好的制图功能(数据可视化)。

 

一、下载安装

R语言官网或镜像站:

https://www.r-project.org/

https://mirrors.tuna.tsinghua.edu.cn/CRAN/

下载最新版R-4.3.1安装即可,安装时可选择32位或64位版本。

建议再接着安装相应版本的R语言集成开发环境Rstudio,地址:

https://www.rstudio.com/products/rstudio/download/

升级R

在其它目录安装R,再将旧版本保留的library目录下的文件(程序包packages)拷贝到新版本library目录下,然后update.packages()

 

 

二、操作界面

 

1 R-4.3.1操作界面

类似Matlab的命令窗口,输入命令,按回车得到运行结果。

【程序包】菜单可以实现载入程序包、设定CRAN镜像、安装及更新程序包等功能。

 

2 RStudio操作界面

代码编辑窗口:新建或打开脚本可调出,用来编写代码,打开R脚本,单击Run运行代码;

命令控制台:代码运行后,控制台会显示相应的代码或返回结果,同R操作界面的命令窗口;

工作空间和历史窗口:类似Matlab相应窗口;

文件、画图、程序包、帮助等窗口

 

三、如何安装程序包?

1. 查看已安装的程序包

(.packages())

注:程序包默认安装在…\R\R-4.3.1\library目录。

2. 加载程序包

library(RMySQL)

若没有安装该包,则会提示错误:

Error in library(RMySQL) : 不存在叫‘RMySQL’这个名字的程辑包

查看加载的程序包

.packages(all.available=TRUE)

 

注:这些程序包是自动加载的。

解除加载程序包:

detach(package:RMySQL)

3. 安装程序包

1)使用R语言操作界面

方法1:菜单操作:

【程序包】——【安装程序包】,选择镜像“China(Beijing 4) [https]”,【确定】,在“Packages”窗口,选中要安装的程序包,点【确定】安装即可。

方法2:命令操作:

install.packages("RMySQL")

回车,选择镜像(同上)后即可安装。

2)使用RStudio操作

务必先设定镜像:

Tools】——【Global Options】,在Options窗口点“Packages”,修改CRAN mirror

China (Beijing 4) [https] - TUNA Team, Tsinghua University

 

菜单操作:【Tools】——【Install Packages】,在Packagees”框输入要安装的程序包名,点Install安装即可

 

命令操作同前文。

注:也可以下载zip程序包,本地安装。

4. 删除程序包

remove.packages("RMySQL")

5 更新包

update.packages()

更新所有已安装的包。

 

四、常用操作

1. help

help(函数名) 或者 ? 函数名

使用R帮助是一种快速学习和掌握R的有效方法。

2. 命令窗口清屏

Ctrl + L

    3. 清除内存变量

rm(变量名)

清除所有变量:

rm(list=ls(all=TRUE))

   4. 获取或设置当前工作目录

getwd()

setwd()

5. 保存和加载数据——saveload函数

 

save函数将工作空间中的数据保存为文件,例如

注:R语言默认数据格式为.Rdata

load函数用来加载数据:

6. 脚本文件的输入和输出

1)在当前会话中执行一个脚本(中的R语句),常用于将某个函数打包调用:

source(路径/脚本文件.R)

2)将输出重定向到文件“文件名.txt”中(文本输出),若文件已经存在,则它的内容将被覆盖:

sink(路径/文件名.txt)

使用参数append=TRUE可以将文本追加到文件后,而不是覆盖它;参数split=TRUE可将输出同时发送到屏幕和输出文件中;不加参数调用命令sink()将仅向屏幕返回输出结果。

    3)要重定向图形输出,使用下列函数即可,最后用dev.off()将输出返回到终端:

函数

输出

pdf("filename.pdf")

pdf文件

win.metafile("filename.wmf")

Windows图元文件

png("filename.png")

png文件

jpeg("filename.jpg")

jpg文件

bmp("filename.bmp")

bmp文件

postscript("filename.ps")

PostScript文件

例如,执行代码:

sink(myoutput, append=TRUE, split=TRUE)

pdf(mygraphs.pdf)

source(script1.R)

脚本文件script1.R中的代码将执行,结果也将显示在屏幕上,另外,文本输出将被追加到文件myoutput中,图形输出将保存到文件mygraphs.pdf

继续执行代码:

sink()

dey.off()

source(script.2)

脚本文件script2.R中的代码将执行,结果显示在屏幕上(此时不再有文本或图形输出)。

 

7. 赋值

注意R语言中赋值不是用“=”,而是“<-”或“->”,例如

x <- 1:10

    R也允许用“=”赋值,但不是标准语法,有时会出问题。

R是一种基于对象的语言,即在定义类的基础上,创建与操作对象;数值向量、函数、图形等都是对象。

五、数据挖掘相关的程序包

R程序包主要包含的类别有:空间数据分析类、机器学习与统计学习类(分类、聚类、关联规则、时间序列分析等)、多元统计类、药物动力学数据分析类、计量经济类、金融分析类、并行计算类、数据库访问类。

功能

函数与加载包

分类与预测

nnet()需要加载BP神经网络nnet包;randomForest()需要加载随机森林randForest包;svm()需要加载e1071包;tree()需要加载CRAT决策树tree

聚类分析

hclust()kmeans()stats

关联规则

apriori()需要加载arules

时间序列

arima()需要加载forecasttseries

 

    1. 分类与预测

是数据挖掘领域研究的主要问题之一,常用的分类器有:神经网络、随机森林、支持向量机、决策树等。

1)神经网络分类器

nnet包执行单隐层前馈神经网络;

nnet()函数,其主要参数有:隐层节点数(size),节点权重(weights),最大迭代次数(maxit)。

2)随机森林分类器

基于Breiman随机森林理论,randomForest包实现;

randomForest()函数,其主要参数有:森林中决策树的数量(ntree),内部节点随机选择属性的个数(mtry),终节点的最小样本数(nodesize)。

3)支持向量机分类器

基于台湾大学林智仁教授的libsvm源代码为基础开发,e1071包实现;

svm()函数提供了Rlibsvm的接口,其主要参数有:类型(type:“C”实现支持向量机分类,“eps-regression”实现支持向量机回归),核函数(kernel:线性核函数Linear、多项式核函数Polynomial、径向基核函数RBFSigmoid核函数)。

注:一般选择径向基核函数。线性核函数只能处理线性关系,且是径向基核函数特例;Sigmoid核函数在某些参数上近似径向基核函数(相当于径向基核函数取一定参数);多项式核函数参数较多,不利于参数优选。

径向基核函数支持向量机包含两个重要参数:惩罚参数Cost和核参数Gammatune()函数可以为两者进行网格寻优(Grid-Search)确定最优值。

2. 聚类分析

分为系统聚类和K-means聚类。

系统聚类可以对不同的分类数产生一系列聚类结果,用hclust()函数实现,其主要参数有:聚类矩阵(d:可由dist()函数求得),系统聚类方法(method:最短距离法single、最长距离法complete、类平均法average、中间距离法median、重心法centroidWaldwald);

K-means聚类只能产生指定分类数的聚类结果,具体分类数的确定,借助实践经验或用一部分样本做系统聚类将其分类数作为参考。

3. 关联规则

关联规则用于从大量数据中挖掘出有价值的数据项之间的相关关系。常用的有arules包中的Apriori算法。

使用Apriori算法前,要将数据转换为transaction格式,通过as()函数转换,其中涉及的参数列表用于自定义最小支持度与置信度。

4. 时间序列分析

是根据系统观测得到的时间序列数据,通过曲线拟合和参数估计来建立数学模型。

先使用ts()函数将数据转化成时间序列格式;模型拟合通过arima()函数实现,其主要参数有:order(自回归项数、滑动平均项数、使时间序列成为平稳序列的差分阶数),seasonal(序列表现出季节性趋势时需要,还有季节周期period),method(参数估计方法:“CSS”为条件最小二乘法、“ML”为极大似然法)。

另外,R语言中的auto.arima()函数可以自动生成一个最优拟合模型。