开发R Package之夏威夷小白篇

声明: 本文档采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

1. 前言

=======

最近研究了下R package,看了一些教程,走了一些弯路,流了一些眼泪,也有了一些心得。 现总结出一个夏威夷小白版本,希望对大家将来开发R package有所帮助。

2. 正文

=======

2.1 Step One: 安装所需要的package

2.2 Step Two: 建立自己package的目录文件

现在,在桌面上就会有一个叫HonoluluWhite的文件夹,打开会看到三个文件和一个名为R的文件夹。

2.2.1 DESCRIPTION

DESCRIPTION是整个R package的metadata,用TextEdit或者Sublime Text编辑都可以,它包括但不局限于以下内容:

TIPS:

2.2.2 NAMESPACE

NAMESPACE是一个让我很困惑的文件,我的NAMESPACE分成两个部分:

export自己写的function

importFrom别的package的function

我理解的这个文件存在的意义是帮助你的新package和其他的package更兼容

2.2.3 R文件夹

每个function都需要存在一个独立的.r文件下,example如下:

前面的部分是对这个function的描述,未来会出现在R中的help部分。

2.3 Step Three: 生成Annotations和更新NAMESPACE

document()会帮助你自动完成这一步。

之后,在HonoluluWhite的文件夹中会多出一个文件夹man,里面是function的Annotations。

2.4 Step Four: 写教程--Vignette

一个.Rmd的文件,这部分将来也会出现在R中的help页面里,也是最费时的一部分,但对于推广和应用还是非常重要的,建议好好写。

2.5 Step Five: 打包成.tar.gz压缩文件

2.6 Step Six: 检查

在上传CRAN之前需要现在本地检查下package里的错误和不规范的问题,尽量解决所有的warnings, errors,和notes。

2.7 Step Seven: 上传CRAN

在CRAN上上传前面的.tar.gz压缩文件即可。 CRAN的效率非常快,基本当天会给回复(不过很可能邮件会在spam里面),按照邮件里提到的问题修改下minor issues就可以啦。

3. 最后

=======

最后,推荐一些我觉得值得一看的相关材料:

大神谢益辉写的:开发 R 程序包之忍者篇 (https://cosx.org/2011/05/write-r-packages-like-a-ninja)

官方手册:Writing R Extensions (https://cran.r-project.org/doc/manuals/R-exts.html)

男神Hadley Wickham的:R packages (http://r-pkgs.had.co.nz/)

希望你们玩儿的开心。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180116G0C3O800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券