http://rbbs.biosino.org/Rbbs/posts/list/6.page
下面的创建R 包的简单教程都是在R 2.5.0 下测试的。
1. Windows 环境下
1.1 预装的软件 (所有软件都可以在 http://www.biosino.org/R/R-doc/Rm/ 和 http://www.biosino.org/R/requiredSoftWares 下载)
1.1.1 R 软件(R的官方下载:http://www.r-project.org/index.html ;或者在我创建的一个本地非官方下载:http://www.biosino.org/R/R-doc/Rm/ ;)
1.1.2 Rtools(在Windows环境下编译R包的一些必备软件,感谢开源社区如此为我们考虑周全;http://www.murdoch-sutherland.com/Rtools/;或者我创建的链接:http://www.biosino.org/R/requiredSoftWares/Rtools26.exe )
1.1.3 微软的HTML Help Workshop (微软的官方下载:http://msdn2.microsoft.com/en-us/library/ms669985.aspx;或者我创建的链接:http://www.biosino.org/R/requiredSoftWares/htmlhelp.exe)(这个可能之前系统就安装过了,如果这样可以不用安装)
1.1.4 MikTex(Tex在Windows下面的实现;官方下载:http://www.miktex.org/Default.aspx;或者我创建的链接:http://www.biosino.org/R/requiredSoftWares/basic-miktex-2.7.2904.exe;如果你要写中文document,请安装CTEX标准配置:http://www.ctex.org/HomePage)
1.2 安装完后,配置系统的path
1.2.1 假定 R的安装路径在: D:\Program Files\R\R-2.5.0\bin ;Rtools的安装路径在:c:\Rtools\ ;HTML Help Workshop的安装路径在:C:\Program Files\HTML Help Workshop;MikTex 的安装路径在:C:\Program Files\MiKTeX 2.5\miktex\bin;
1.2.2 在系统的PATH里面加上1.2.1里面提到的路径(必须的,下面用粗体标出),如下
c:\Rtools\bin;c:\Rtools\perl\bin;c:\Rtools\MinGW\bin;C:\Program Files\HTML Help Workshop;C:\Program Files\MiKTeX 2.5\miktex\bin;C:\WINDOWS\system32; C:\WINDOWS;C:\WINDOWS\System32\Wbem;
在下图中,箭头所指的区域就是设置PATH的地方,在path中增加路径时,用分号分开。
1.2.3 确认path设置是否有效。如果不知道,可以问旁边的对计算机比较熟悉的人。键入下面的命令,如果正常说明PATH设置有效,
- gcc --help
- perl --help
- TeX --help
- R CMD --help
1.3 现在开始编写R的包,我们用 package.skeleton() 这个函数。
1.3.1 打开R控制台
键入如下代码,
- `hl` <-
-
- function() "Hello World!";
-
- `rLove` <-
-
- function(name) paste("Welcom to R world, ", name, "!", sep = "");
-
- `hl_data` <-
-
- matrix(rnorm(100), nc = 10);
-
- package.skeleton(name="helloWorld", list=c("hl", "rLove", "hl_data"));
- gcc --help
- perl --help
- TeX --help
- R CMD --help
1.3 现在开始编写R的包,我们用 package.skeleton() 这个函数。
1.3.1 打开R控制台
键入如下代码,
- `hl` <-
-
- function() "Hello World!";
-
- `rLove` <-
-
- function(name) paste("Welcom to R world, ", name, "!", sep = "");
-
- `hl_data` <-
-
- matrix(rnorm(100), nc = 10);
-
- package.skeleton(name="helloWorld", list=c("hl", "rLove", "hl_data"));
1.3.2 查看当前工作路径下面,会出现一个“helloWorld”的目录,其中
R 子目录:包含*.R 文件,就是R代码,我们前面写的hl,rLove函数都是在这里面(:_),hl_data呢?);
data 子目录:呵呵,这个就是放*.rda文件的地方,包括我们的hl_data.rda;
man子目录:放在 *.Rd文件,就是包,函数,数据的帮助文档,tex格式的,不要怕Tex,依葫芦画瓢就行了,每个文件一看名字就知道是描述什么内容了;
DESCRIPTION文件:里面的内容我也不解释了,自己改一下;
Read-and-delete-me文件:这个文件没有什么用,看完后删掉。
1.3.3 打包或编译上面的文件
首先,设置一下TMPDIR
- D:\Work>set TMPDIR= D:\Work\tmp
然后,有两种处理方式,
第一种是包的源码格式(*.tar.gz),Linux下面通常用这种格式安装
- D:\Work>R CMD build helloWorld
* checking for file 'helloWorld/DESCRIPTION' ... OK
* preparing 'helloWorld':
* checking DESCRIPTION meta-information ... OK
* removing junk files
* checking for LF line-endings in source files
* checking for empty or unneeded directories
* building 'helloWorld_1.0.tar.gz'
第二种是包的二进制格式(*.zip),Windows下面是用这种安装
- D:\Work>R CMD build --binary helloWorld
* checking for file 'helloWorld/DESCRIPTION' ... OK
* preparing 'helloWorld':
* checking DESCRIPTION meta-information ... OK
* removing junk files
* checking for LF line-endings in source files
* checking for empty or unneeded directories
* building binary distribution
WARNING
* some HTML links may not be found
installing R.css in D:/Work/tmp/Rinst220096374
Using auto-selected zip options ''
---------- Making package helloWorld ------------
adding build stamp to DESCRIPTION
installing R files
installing data files
installing man source files
installing indices
not zipping data
installing help
>>> Building/Updating help pages for package 'helloWorld'
Formats: text html latex example chm
helloWorld-package text html latex example chm
hl text html latex example chm
hl_data text html latex example chm
rLove text html latex example chm
Microsoft HTML Help Compiler 4.74.8702
Compiling d:\Work\tmp\Rbuild220075595\helloWorld\chm\helloWorld.chm
Compile time: 0 minutes, 2 seconds
5 Topics
11 Local links
0 Internet links
1 Graphic
Created d:\Work\tmp\Rbuild220075595\helloWorld\chm\helloWorld.chm, 17,193 bytes
Compression increased file by 5,171 bytes.
adding MD5 sums
packaged installation of package 'helloWorld' as helloWorld_1.0.zip
* DONE (helloWorld)
1.3.4 :_),你的第一个包helloWorld_1.0.zip大功告成。如何在Windows下面安装?见下图
然后在控制台键入命令
- library(helloWorld)
-
- hl();
-
- rLove(“Test”);
-
- data(hl_data);
-
- ?hl
1.4 我们是不是发现问题了?帮助文档里面都是一些文不对题的言语。是的,在1.3.2步里面提到的文件中,我们必须手动修改man目录下面的Rd文件(文本格式的,可以用任何文本工具打开)和DESCRIPTION文件。修改完后,重复1.3.3里面的编译步骤。
1.5 如果你不想用package.skeleton()这个函数。可以手工配置helloWorld目录,所有的文件都是自己写,写完后再编译。这里唯一比较烦的是写man目录下面的Rd文件,一个简单方法如下,
1) 把R环境的工作路径设在你要写的包的man目录下;
2) 键入如下代码,
- `hl` <-
-
- function() "Hello World!";
-
- `rLove` <-
-
- function(name) paste("Welcom to R world, ", name, "!", sep = "");
-
- `hl_data` <-
-
- matrix(rnorm(100), nc = 10);
-
- prompt(rLove) # 生成rLove.Rd
-
- prompt(hl) # 生成hl.Rd
-
- prompt(hl_data) # 生成hl_data.Rd
2. Linux 环境下
同Windows下面的做法,除了不用痛苦地配置那些软件(省略1.1和1.2),因为预先已经配置完了。从1.3开始就行了。安装包的方式采用命令: R CMD INSTALL helloWorld_1.0.tar.gz
好运。
3. 高手进阶
看《R扩展》(http://www.biosino.org/R/R-doc/Rm/R-exts.html) ^_^
丁国徽
2008-1-8
这篇文章被编辑了 11 次. 最近一次更新是在 29/01/2008 09:51:47
[此贴子已经被yahoocom于2009-4-2 23:51:03编辑过]