在windows中建设R措施包简明指南
R软件中CRAN镜像迄今已经保藏了2300多个措施包,险些涉及了统计编程的所有规模,每个措施包既有源代码,又有编译好的Windows可能MacOS平台下的措施。在编写R函数较多时,较好将其建造成措施包,便于打点和利用。假如愿意,还可以将R措施包提交到CRAN,与世界各地的用户分享成就。
在Windows情况下如何编写R措施包?也就是生成供Linux情况编译运行的tar.gz文件,也生成供windows下利用的.zip文件?这一进程并不巨大,但要下载一些东西软件,凭据相应的步调填写相应的“表格”,继而在节制台中输入一些指令。假如你是R的用户,相信这些不该该生疏了。
在Windows下编写R措施包凡是包罗以下几步:
(1)东西软件Rtools的安装和备选软件的安装。
(2)r剧本的筹备,也就是用来生成措施包的函数剧本。
(3)操作R中自带的package.skeleton()函数,生成建造包所需要的Description 文件和辅佐文件.rd 。
(4)按要求填写生成的Description 文件和辅佐文件.rd
(5)在windows cmd的呼吁行中输入相应的呼吁,生成zip文件可能.tar.gz,并举办相应的查抄。
下面我们来建设最简朴的一个R措施包,个中只包括一个函数。
一 东西软件安装和设置
建造r包的东西软件包罗Rtools,HTML编译器(R2.10后不需要HTML编译器),MikTeX 或 Ctex (假如不想得到pdf手册,则不需要安装)
1 东西软件安装
(1)Rtools(建造R包的主要东西)
Rtools是在windows下建造R包的一系列东西,个中包罗
1) CYGWIN 在Windows下模仿UNIX情况
2) MinGW编译器,可用来编译C和Fortran语言。
3) Perl
下载地点: http://www.murdoch-sutherland.com/Rtools/
(2) 微软HTML编译器(备选):
用来从源文件生成HTML名目标辅佐文件(2.10今后的版本则不需要)
下载地点:http://go.microsoft.com/fwlink/?LinkId=14188
(3) MikTeX 或CteX(备选)
用来生成PDF名目标辅佐文件
下载地点:http://www.miktex.org/ www.ctex.org/
别离凭据要求安装好。
2 配置文件启动路径:
配置启动路径的目标是在cmd呼吁行可以直接挪用Rtools等相应软件。
右键点击:
我的电脑>属性>高级>情况变量>系统变量 PATH一项,点击“编辑”,查抄是否具有以下路径。凡是软件在安装时已经自动设置好了启动路径。假如没有,需要手工添加:
c:\Rtools\bin;c:\Rtools\perl\bin;c:\Rtools\MinGW\bin; C:\CTEX\MiKTeX\miktex\bin;C:\CTEX\CTeX\ctex\bin;C:\CTEX\CTeX\cct\bin;C:\CTEX\CTeX\ty\bin; C:\Program Files\R\R-2.11.0\bin\;
#p#分页标题#e#
|
|
图1 配置启动路径 |
二 R剧本的筹备
如果此刻我们已经有了一个编好的R函数freq,用来计较物种呈现的相对频度,存成了r剧本的名目,文件名为freq.r
其内容如下所示
##############################################
freq <-
function(matr){
matr <- as.matrix(matr)
if(!is.matrix(matr)){
stop(“The input data must be matrix!\n”)
}
if(any(is.na(matr))){
matr <- na.omit(matr)
print(paste(“NA found in matrix, and have been removed\n”))
}
matr[matr>1] <- 1
result <- apply(matr, 2, sum)/nrow(matr)
return(result)
}
##############################################
下面是用R自带的package.skeletons()函数生成R措施包的框架
三 R包框架的筹备
1 生成筹备文件
登岸R :开始>所有措施>R>R.2.9.0
(1)排除内存中的工具,目标删除R内存中所有不需要的数据或函数:
rm(list=ls())
(2)设定事情目次,这里设定为 c:/pa
setwd(“c:/pa”)
(3)先用source()函数将r剧本中的函数读取。
假如要建设的R包中有许多函数,则发起先将各函数存在一个剧本文件,再用source()函数读取该剧本中的各函数,并将需要的数据读取到内存中。用package.skeleton (name=”packname”, list = ls())生成相应的包框架。
这里,我们要建设一个名为freq的R包。则输入以下呼吁:
package.skeleton(name=”freq”, list = ls())
此时,R节制台中显示
> package.skeleton(name=”freq”, list = ls())
Creating directories …
Creating DESCRIPTION …
Creating Read-and-delete-me …
Saving functions and data …
Making help files …
Done.
Further steps are described in ‘./freq/Read-and-delete-me’.
>
可以看到c:/pa文件夹下新呈现了一个freq文件夹
该文件夹下的内容就是R包的框架,包罗Read-and-delete-me,DESCRIPTION文件,r文件夹,man文件夹,只要按要求将其填写完整,再举办相应的编译即可。
Read-and-delete-me 包罗如何建设R包
DESCRIPTION 是对R包的扼要先容
r文件夹中存放的是.r文件,即各函数的源代码
man文件夹下存放的是Rd文件,也就是R辅佐的源代码
首先查察Read-and-delete-me文件
文件内容如下:
####################################################################################
* Edit the help file skeletons in ‘man’, possibly combining help files for multiple functions.
* Put any C/C++/Fortran code in ‘src’.
* If you have compiled code, add a .First.lib() function in ‘R’ to load the shared library.
* Run R CMD build to build the package tarball.
* Run R CMD check to check the package tarball.
Read “Writing R Extensions” for more information.
####################################################################################
大抵意思如下:
可以man文件夹下编辑辅佐文件
C/C++/Fortran 的源代码应该放入src文件夹下
需要在登录时载入包
可以运行R CMD成立和查抄相应的包
注:这里的R CMD说的是在Linux的终端输入的呼吁,实际上在Windows情况中应该输入 Rcmd
Rcmd build packname 给源措施打包,
Rcmd build –binary packname成立zip包。
Rcmd check packname 查抄措施包的错误。
查察过该文件之后,需要将其删除。
2 编辑Description文件和rd文件
(1) Description文件的编辑
凭据提示,填好各项
Description文件是该措施包的简介,这一名目是Debian Linux的作者发现的。
内容如下:
赤色部门是需要手工编辑的。
需要出格留意的是,本措施包的例子中利用了vegan措施包的数据,则应该在Description文件中插手Suggests:vegan,