在ubuntu中创建R package简单流程


学习并使用了一段时间的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的简单流程进行了描述,如果想了解更多的信息,可以参阅以下文章:

开发R程序包之忍者篇

Developing Packages with RStudio

Package basics

发表评论