麻省理工三位教授教你一步步创建自己的R程序包(附完整教程下载)

大数据文摘作品,转载要求见文末

原作者 | PakinJa

编译 | 笪洁琼,张天健,Aileen

R语言是很多数据科学家和科研人员会用到的语言,根据自己的需要开发独立的R程序包可以使自己的工作更快捷方便,也便于与他人分享。本文摘自由三位MIT 麻省理工学院教授联合编写的教程“"Instructions for Creating Your Own R Package"”。 我们将按步骤指导并创建属于你的R安装包。

大数据文摘后台回复“R”下载英文完整PDF版教程。

教程全文包含三组不同的说明。本文涉及使用RStudio的接口。 如果您不使用RStudio或者您使用RStudio但需要更多的调控,请按照教程中第3节中的说明进行操作。第4节则说明如何通过Rcpp帮助器使用一个由C ++编写的函数来创建R程序包。

用RStudio创建R程序包的10个步骤:

1.首先打开一个新的R文件,用rm(list = ls())命令确认你的默认目录。你的默认目录应该是空的,可以通过Is()命令来查看 - 你应该能够清楚的看见回复为(0)

2. 在R文件中可以为你的程序编写代码。你可以创建一个包含所有函数的文件,或者是为每个文件都创建单独的文件。将文件保存到你能快速找到的地方。

3.安装‘devtools’ 安装包,(代码:install.packages(‘devtools’))

4. 在RStudio.中打开一个新的项目,去Files菜单中的点击新项目(New Project),然后选择新目录(New Directory),再选择“R Package”和创建一个R新的安装包。

5.填入你的安装包,然后在“Create package based on source files”中上传你在第一步创建的R文件。点击“创建项目”(Create Project)。

6. 在屏幕的右下角,你会看到一个文件目录。“R”文件夹中包含了你所有的函数的代码。“man”文件夹中将包含了文件中函数的所有帮助文件。根据Rstudio的版本,当你在创建R安装包或者R文档时,帮助文件会自动生成的。

如果“man”文件夹中已经包含.Rd文件,打开每个文件,添加一个标题然后保存.(如果不是,请见步骤7)。你可以返回并在稍后编辑这些内容。但是为了编译你的安装包,你需要在每个.Rd的文件下添加一个标题。

7. 如果你的”man”文件夹是空的,那么你需要为每个函数手动创建一个.Rd文件。方法是:打开文件菜单—创建新的文件—选择R文件: File > New File > R Documentation。输入函数的标题并在.Rd文件格式的菜单下选择“函数(Function)”。编辑你的新文件要包含标题域(再次强调,你可以选择现在编辑或者是稍后编辑,如果标题域是空的,那么你的安装包将无法编译)。保存”man”文件夹中的每一个.Rd文件。

注意:如果你需要添加更多的函数在你的安装包里,那么你需要重复以上步骤。即使当你一开始创建安装包和RStudio自动生成R记录文件的时候。

8.现在你已经可以开始编译你的安装包了。在顶部工具栏里选择“创建”(Build)或者“创建和重载”(Build and Reload)[注意:你可以用快捷键Ctrl+Shift+B)]。如果以上操作有效,你的安装包将会自动加载并且你会在底部的控制台上看到一个库library(mynewpackage) 。测试你的函数确保其有效运行。

9.返回并为每个函数编辑其记录文件(帮助文件)。打开每一个.Rd文件,为安装包添加一段简短的描述。如果可以的话,包含至少一个例子。接着,重载你的安装包,在R控制台上彻底检验你的文件。注意:每次改变你的函数和文件时,你都会需要重新编辑(重复步骤8)。

10.一旦你完成创建你的函数和记录文件时,编译你的安装包,并反复检查函数和帮助文件是否能运行,把包含安装包的完整文件复制到Dropbox (共享网盘)并用你的名字命名。

恭喜!现在你可以叫自己是R开发员了。关于此教程更详细的内容,请在大数据文摘后台回复“R”下载完整PDF版教程。

原文链接:https://www.r-bloggers.com/mit-step-by-step-instructions-for-creating-your-own-r-package/

关于转载 如需转载,请在开篇显著位置注明作者和出处(转自:大数据文摘 | bigdatadigest),并在文章结尾放置大数据文摘醒目二维码。无原创标识文章请按照转载要求编辑,可直接转载,转载后请将转载链接发送给我们;有原创标识文章,请发送【文章名称-待授权公众号名称及ID】给我们申请白名单授权。未经许可的转载以及改编者,我们将依法追究其法律责任。联系邮箱:zz@bigdatadigest.cn。

原文发布于微信公众号 - 大数据文摘(BigDataDigest)

原文发表时间:2017-06-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏散尽浮华

centos6下redis cluster集群部署过程

一般来说,redis主从和mysql主从目的差不多,但redis主从配置很简单,主要在从节点配置文件指定主节点ip和端口,比如:slaveof 192.168....

57010
来自专栏C/C++基础

Linux命令(37)——free命令

free命令用于显示系统内存使用情况,包括物理内存(Physical Memory)、虚拟内存(Swap Memory)、共享内存(Shared Memory)...

1124
来自专栏阮一峰的网络日志

User space 与 Kernel space

学习 Linux 时,经常可以看到两个词:User space(用户空间)和 Kernel space(内核空间)。 简单说,Kernel space 是 Li...

2965
来自专栏java一日一条

Java Web应用中调优线程池的重要性

不论你是否关注,Java Web应用都或多或少的使用了线程池来处理请求。线程池的实现细节可能会被忽视,但是有关于线程池的使用和调优迟早是需要了解的。本文主要介绍...

971
来自专栏xcywt

Linux下检测内存泄露的工具 valgrind

参考:http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html 几乎是照抄参考过来的,只不过...

5359
来自专栏PHP在线

PHP 安全性漫谈

原文出处: 彭长霖 本文所讨论的安全性环境是在Linux+Apache+Mysql+PHP。超出此范围的安全性问题不在本文范畴之内 一、apache serv...

3807
来自专栏开发与安全

进程控制块PCB结构 task_struct 描述

注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了...

2768
来自专栏编舟记

java9 模块化系统小试

JPMS 全称是 Java Platform Module system(Java 平台模块化系统)。它的目的简单直接:编译期间检查和强化封装。随之而来的好处就...

1823
来自专栏蘑菇先生的技术笔记

探索C#之虚拟桶分片

3094
来自专栏happyJared

Hexo,添加标题翻译插件

  hexo生成的默认文章链接格式是这样的:https://blog.mariojd.cn/2013/07/14/<Markdown file name>/,这...

1533

扫码关注云+社区

领取腾讯云代金券