R软件安装
转自:
www./doc/7a13604309.html,/home.php?mod=space&uid=255662&do=blog& id=247614
在windows中创建R程序包简明指南
已有 1851 次阅读2009-8-5 16:18|个人分类:科研笔记|系统分类:科研笔记|关键词:R语言,程序包,windows
在windows中创建R程序包简明指南
R软件中CRAN镜像迄今已经收藏了2300多个程序包,几乎涉及了统计编程的所有领域,每个程序包既有源代码,又有编译好的Windows或者MacOS平台下的程序。在编写R函数较多时,最好将其制作成程序包,便于管理和使用。如果愿意,还可以将R程序包提交到CRAN,与世界各地的用户分享成果。
在Windows环境下如何编写R程序包?也就是生成供linux环境编译运行的文件,也生成供windows下使用的.zip文件?这一过程并不复杂,但要下载一些工具软件,按照相应的步骤填写相应的“表格”,继而在控制台中输入一些指令。如果你是R的用户,相信这些不应该陌生了。
在Windows下编写R程序包通常包括以下几步:
(1)工具软件Rtools的安装和备选软件的安装。
(2)r脚本的准备,也就是用来生成程序包的函数脚本。
(3)利用R中自带的package.skeleton()函数,生成制作包所需要的Description 文件和帮助文件.rd 。
(4)按要求填写生成的Description 文件和帮助文件.rd
(5)在windows cmd的命令行中输入相应的命令,生成zip文件或者.,并进行相应的检查。
下面我们来创建最简单的一个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
下载地址: www./doc/7a13604309.html,/Rtools/
(2)微软HTML编译器(备选):
用来从源文件生成HTML格式的帮助文件(2.10以后的版本则不需要)
下载地址:www./doc/7a13604309.html,/fwlink/?LinkId=14188
(3) MikTeX 或CteX(备选)
用来生成PDF格式的帮助文件
下载地址:www./doc/7a13604309.html,/ www./doc/7a13604309.html,/
分别按照要求安装好。
2 设置文件启动路径:
设置启动路径的目的是在cmd命令行可以直接调用Rtools等相应软件。
右键点击:
我的电脑>属性>高级>环境变量>系统变量PATH一项,点击“编辑”,检查是否具有以下路径。通常软件在安装时已经自动配置好了启动路径。如果没有,需要手工添加:
c:\Rtools\bin;c:\Rtools\perl\bin;c:\Rtools\MinGW\bin;
php软件安装包C:\CTEX\MiKTeX\miktex\bin;C:\CTEX\CTeX\ctex\bin;C:\CTEX\C TeX\cct\bin;C:\CTEX\CTeX\ty\bin; C:\Program
Files\R\R-2.11.0\bin\;
图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())
图 2 用package.skeleton函数生成R包框架
此时,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文件夹,只要按要求将其填写完整,再进行相应的编译即可。
图3 生成的R包框架
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.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
PHP创建自己的Composer包方法
« 上一篇
推荐文章
热门文章
-
随机森林算法的改进方法
2024-10-02 -
基于随机森林算法的风险预警模型研究
2024-10-02 -
Python中的随机森林算法详解
2024-10-02 -
随机森林发展历史
2024-10-02 -
如何使用随机森林进行时间序列数据模式识别(八)
2024-10-02 -
随机森林回归模型原理
2024-10-02 -
如何使用随机森林进行时间序列数据模式识别(六)
2024-10-02 -
如何使用随机森林进行时间序列数据预测(四)
2024-10-02 -
如何使用随机森林进行异常检测(六)
2024-10-02 -
随机森林算法和grandientboosting算法 -回复
2024-10-02 -
随机森林方法总结全面
2024-10-02 -
随机森林算法原理和步骤
2024-10-02 -
随机森林的原理
2024-10-02 -
随机森林 重要性
2024-10-02 -
随机森林算法
2024-10-02 -
机器学习中随机森林的原理
2024-10-02 -
随机森林算法原理
2024-10-02 -
使用计算机视觉技术进行动物识别的技巧
2024-10-02 -
基于crf命名实体识别实验总结
2024-10-02 -
transformer预测模型训练方法
2024-10-02
最新文章
-
随机森林算法介绍及R语言实现
2024-10-02 -
基于随机森林优化的神经网络算法在冬小麦产量预测中的应用研究_百度文 ...
2024-10-02 -
基于正则化贪心森林算法的情感分析方法研究
2024-10-02 -
随机森林算法和grandientboosting算法
2024-10-02 -
基于随机森林的图像分类算法研究
2024-10-02 -
随机森林结合直接正交信号校正的模型传递方法
2024-10-02
发表评论