文章目录
学习并使用了一段时间的R,发现真是有种相见恨晚的感觉。特别是R中大量的第三方开发包,使特定领域的问题得到极大的简化,例如得到大量赞誉的reshape2,ggplot2等package,将数据处理和绘图提升到了极为优雅和艺术的层次,令人爱不释手。在使用R解决数据处理问题时,有一些问题是相似的,通常会写成一个个函数来重复利用,而渐渐的函数也越积越多,能不能将这些函数整理后形成package,直接通过library来调用呢?
虽然官方给出了制作R Rackage的官方说明《Writing R Extensions》,但是看完之后仍然是一头雾水。在网上查找到一些资料,按照Making an R package中提供的方法,可以通过以下基本流程创建R Package:
1.首先将预放入package中的数据和函数读入R工程文件(使用RStudio)中;
可以看到Workspace中列出了数据和函数;
2.运行R命令行中运行
package.skeleton("myPackage")
myPackage为新建Package的名字;此时会在当前文件目录下生成myPackage文件夹,默认文件夹结构如下:
-
data 文件夹
-
man文件夹:自动对每个函数生成对应的帮助文件
-
R文件夹:将workspace中的各个函数输出为单独的R脚本文件
-
DESCRIPTION:描述性文件
-
NAMESPACE:命名空间
-
Read-and-delete-me
接下来要对DESCRIPTION内容进行修改,DESCRIPTION默认内容如下,根据R的实际情况进行修改即可。
Package:myPackage
Type: Package Title: What the package does (short line)
Version: 1.0 Date: 2013-07-28
Author: ****
Maintainer: *\**<****@>
Description: More about what it does (maybe more than one line)
License: GPL(>=2)
Depends: ,R (>= 1.9.0)
然后还需要对man文件夹中的帮助文件进行修改。帮助文件具有固定格式,按照要求进行补充和修改。`
3.如果需要在package中新增函数和数据,可以读入新增的函数和样例数据,并使用prompt(fcn)命令,可以在当前目录中生成数据文件、R函数脚本文件和帮助文件。分别将帮助文件移动到上述man文件夹中,将R函数脚本文件移动到R文件夹。如果对需要加入package中的函数进行修改,也可以按照上述步骤进行。
4.如果对预加入到package中的函数和数据确认无误,就可以打包发布了:在命令行中运行:
R CMD check myPackage
接着运行:
R CMD build myPackage
就可以在当前目录下生成.tar.gz安装包文件。如果想让这个package为更多的人知晓还可以将你的包发布到R ctan上。
以上仅仅对制作R Package的简单流程进行了描述,如果想了解更多的信息,可以参阅以下文章: