内容

1制作包装

包装是一系列功能,以凝聚力方式在一起实现目标。它(应该)包括通过人员页面和小插图的详细文档,并且(应该)进行准确性和效率测试。

写r扩展是写入包的一个非常详细的手册以及包的结构需要什么。

1.1使用devtools.创建一个包

devtools.包提供了许多选项和实用程序,以帮助构建一个新包。您可以获得所有可用DevTools功能的列表LS(“包:devtools”)

使用devtools来构建包的一些有用的引用是rstudio devtools cheetsheet.詹妮弗布莱恩班

1.1.1设置包的壳

库(DevTools)创建(“myfirstpackage”)

创建将实例化R为有效包所需的所有必要文件和子目录:描述,命名空间和R目录。您必须编辑描述以将相关信息插入到您的包中。

运行创建后,包具有有效的包结构,可以安装和加载:安装(“myfirstpackage”)图书馆(“myfirstpackage”)库(帮助=“myfirstpackage”)

1.1.2版本控制

在创建包时,它是一个很好的想法,它是创建包,尤其是在项目上协作时,允许多个用户进行更改。它允许在必要时常常可以高级或恢复的更改记录。

只有一个项目可以是版本控制的,要在Rstudio中制作一个项目的项目转到:文件 - >新项目。在这种情况下,我们开始创建目录,以便我们按照所选提示进行操作使用现有目录。现在它是一个我们可以去的项目工具 - >版本控制 - >项目设置改变版本控制系统Git.并按照提示。在Rstudio窗格中通知环境/历史记录/构建有一个新的标签Git。现在可以开始使用Git.制作提交版本控制。要进行提交,可以转到GIT选项卡,选中要修改,添加或删除要跟踪的任何文件旁边的复选框,然后选择犯罪。在弹出并选择的窗口中输入新的提交消息犯罪

我们在这里停下来,但我们也希望将包装放在github上。(这假设您有一个github帐户)。首先,在Rstudio去工具 - >全球选项并选择git / svn。确保路径正确。如果您没有将Rstudio项目联系到GitHub,请选择创建RSA键。关闭窗口。点击查看公钥并复制显示的公钥。现在在Web浏览器中,打开GitHub帐户。去设置SSH和GPG键。单击选项新的SSH钥匙并粘贴复制的公钥。此外,在GitHub上,创建一个具有与您在RSTUDIO中创建的名称相同的新存储库创造()。回到rstudio,选择工具 - > shell并键入以下子位点您的github user.name和包名称。

git远程添加原点https://github.com/< github user.name> /  .git git config emote.origin.url git@github.com: / <包repo name> .git git pull -u Origin Master Git Push -U Origin Master

例如,我的github上的包存储库是“myfirstpackage”,我的git hub user.name是lshep:

https://github.com/lshep/myfirstpackage.git git@github.com:lshep / myfirstpackage.git

现在,如果您在Git的Rstudio选项卡中查看,则可以使用推送和拉动选项。您现在可以从包中推动和拉动包装的本地版本和包的Github存储库版本。

1.1.3回到制作有效的包裹

devtools.构建,检查和安装包中内置函数的普通派生。我们使用的包装创造有一个有效的包结构,但如果我们这样做查看我们会发现描述需要更新。更新描述文件,适合您的包;在整个软件包的开发过程中,您可能必须更新申请技术的描述依赖性,导入和建议字段。

现在我们想开始编写R功能。在rstudio中,您可以打开一个空文件文件 - >新文件并选择r script.。将文件保存在R目录中。写下您的函数和文档。您可以手动函数或使用Roxygen您可以使用DevTools功能文档()。看看写r扩展有关手动创建RD文件(位于Man目录中),但Roxygen正在增长流行。可以找到Roxygen标签的一些有用的链接rstudio devtools cheetsheet.Roxygen帮助

创建功能时有些有用的devtools命令:

  • load_all()在环境中加载所有包功能以进行测试
  • 查看()检查包(R CMD检查)
  • 文档()生成或更新Andy文档文件

并使用RStudio选项构建 - >构建和重新加载构建 - >清洁和重建

还建议您为您的包装有一个手册页。devtools为此提供框架,并创建需要通过调用修改的文件use_package_doc()

如果您在代码中导入任何函数,请不要忘记更新依赖,导入或建议的描述文件。

1.1.4测试

强烈建议为您的包添加单元测试。单元测试确保包装正常工作。测试的两种主要方法是使用运行或者testthat.。testthat功能包含在devtools中。使用USE_TESTTHAT()将设置所需的目录结构并将包建议添加到描述中。以下是Testthat测试结构的一些示例:预期_identical.Heake_true.expect_error.。还有其他选项也讨论Testthat Wickham.testthat.

1.1.5羽毛

Vignettes是包装的另一个主要文档片段,以及越来越多的存储库系统(Cran,Biocumond,Ropensci)并使Vignettes成为标准要求。它们是一个更多的深度描述和包装的例子。devtools还提供了功能use_vignette()设置目录结构和初始文件以创建Vignette。对于Biocuconductor提交,我们建议改变输出:Vignette标头的部分以下(这将需要在说明书中添加生物焦于建议字段):

输出:Biocstyle :: html_document:toc:true toc_depth:2

或者,如果您的系统上已安装生物,您也可以使用Rstudio:新文件 - > RAMARMDOWS - >来自模板 - > Biocumon HTML / PDF Vignette

可以在此处找到一个有用的Rarmardown链接,通常用于Vignette创建的Creation:RAMAMMOD CHEET表格

1.2生物导体标准

  1. 适当的编码和有效编码:
  1. Biocuconductor互连和S4类
  1. 测试
  1. 使用可执行示例填写和详细的Vignettes和Man页面
  2. 检查时间<5min
  3. 包尺寸<4MB
  4. 可以找到所有套餐指南这里

干净的构建和检查和Bioccheck不是验收的保证。它将通过正式的观点。

1.2.1提交给Biocometion.

阅读贡献准备好提交打开a新问题。标题:应该是您包的名称。一旦包裹批准建筑,别忘了设置Webhook.