R是统计分析软件,在数据分析、数据挖掘领域有优势;与SAS比最大的好处就是免费,其次是有各种现成的程序包可用,再次是具有极好的制图功能(数据可视化)。
一、下载安装
到R语言官网或镜像站:
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. 保存和加载数据——save和load函数
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()需要加载forecast、tseries包 |
1. 分类与预测
是数据挖掘领域研究的主要问题之一,常用的分类器有:神经网络、随机森林、支持向量机、决策树等。
(1)神经网络分类器
nnet包执行单隐层前馈神经网络;
nnet()函数,其主要参数有:隐层节点数(size),节点权重(weights),最大迭代次数(maxit)。
(2)随机森林分类器
基于Breiman随机森林理论,randomForest包实现;
randomForest()函数,其主要参数有:森林中决策树的数量(ntree),内部节点随机选择属性的个数(mtry),终节点的最小样本数(nodesize)。
(3)支持向量机分类器
基于台湾大学林智仁教授的libsvm源代码为基础开发,e1071包实现;
svm()函数提供了R与libsvm的接口,其主要参数有:类型(type:“C”实现支持向量机分类,“eps-regression”实现支持向量机回归),核函数(kernel:线性核函数Linear、多项式核函数Polynomial、径向基核函数RBF、Sigmoid核函数)。
注:一般选择径向基核函数。线性核函数只能处理线性关系,且是径向基核函数特例;Sigmoid核函数在某些参数上近似径向基核函数(相当于径向基核函数取一定参数);多项式核函数参数较多,不利于参数优选。
径向基核函数支持向量机包含两个重要参数:惩罚参数Cost和核参数Gamma,tune()函数可以为两者进行网格寻优(Grid-Search)确定最优值。
2. 聚类分析
分为系统聚类和K-means聚类。
系统聚类可以对不同的分类数产生一系列聚类结果,用hclust()函数实现,其主要参数有:聚类矩阵(d:可由dist()函数求得),系统聚类方法(method:最短距离法single、最长距离法complete、类平均法average、中间距离法median、重心法centroid、Wald法wald);
K-means聚类只能产生指定分类数的聚类结果,具体分类数的确定,借助实践经验或用一部分样本做系统聚类将其分类数作为参考。
3. 关联规则
关联规则用于从大量数据中挖掘出有价值的数据项之间的相关关系。常用的有arules包中的Apriori算法。
使用Apriori算法前,要将数据转换为transaction格式,通过as()函数转换,其中涉及的参数列表用于自定义最小支持度与置信度。
4. 时间序列分析
是根据系统观测得到的时间序列数据,通过曲线拟合和参数估计来建立数学模型。
先使用ts()函数将数据转化成时间序列格式;模型拟合通过arima()函数实现,其主要参数有:order(自回归项数、滑动平均项数、使时间序列成为平稳序列的差分阶数),seasonal(序列表现出季节性趋势时需要,还有季节周期period),method(参数估计方法:“CSS”为条件最小二乘法、“ML”为极大似然法)。
另外,R语言中的auto.arima()函数可以自动生成一个最优拟合模型。