如何配置RStudio包构建以跨多台计算机工作

Aar*_*ron 8 r rstudio roxygen2

这个问题已经被问由RStudio帮助页面上的其他用户在这里,但至今未收到答复.

基本上,我已经完成了所有步骤:

(1)安装Xcode

(2)下载并安装了命令行工具

(3)安装MacTex

(4)选择包含R包的目录及附带的描述文件.

这个包在我第一次用来构建它的Mac上编译得很好.然而,现在我被告知RStudio无法检测到描述文件,即使它正好位于构建目录中.我附上了截图.

我得到的错误信息是:

ERROR: The build directory does not contain a DESCRIPTION file so cannot be built as a package.
Run Code Online (Sandbox Code Playgroud)

谁知道我错过了什么?我附上了截图供参考.完全披露:这适用于商业应用.

箭头指出构造目录中存在DESCRIPTION文件

gre*_*ane 9

我刚才遇到了这样的错误(除了我以前能够在没有事故的情况下构建包).

原来我的错误是由一个结构不良的描述文件引起的.修复语法允许我的包构建.

  • 刚刚遇到同样的问题,我学到了很难"描述使用简单的文件格式...当值跨越多行时,它们需要缩进"(来自R Packages by Hadley Wickham) (3认同)
  • 您可以检查这可能是`devtools :: build()的问题.它提供了一个更多信息的错误消息,例如:"`错误:行启动'foo bar foo bar foo ...'格式错误!" " (2认同)

And*_*ton 4

以下概述了我如何为我们称为 的包处理此问题mypack

更新 R 和 Rstudio

这应该是您要做的第一件事。更新一切...

创建包骨架

使用roxygen2包创建mypack包骨架。在您的 IDE 中尝试以下操作:

library(roxygen2)
package.skeleton('mypack')
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅http://cran.r-project.org/web/packages/roxygen2/roxygen2.pdf 。

编辑描述文件

使用可让我查看非打印字符的阅读器编辑说明文件。值得检查一下您的文件中是否隐藏了任何奇怪的字符。RStudio 是一个很好用的编辑器。

将您的描述文件内容与其他人的 github 存储库进行比较,例如plyr描述文件

另外,这里有一个相关的问题,其答案进一步解释了描述文件的使用方式。

构建包

我使用脚本(如下)从 Rstudio 中构建我的包,而不是使用 Rstudio 的预设选项。我不喜欢必须记住在常用 IDE 和某些项目之间切换。

您需要[devtools][3]安装才能使其工作。

setwd('~/Documents/projects/Rcode')
# remove the old version
try(detach(name = "package:mypack",unload = TRUE))
# load the packages we need for building / documentation
library("roxygen2")  # could use "require"
# generate documentation
roxygenize(package.dir = "mypack")

# now we actually build and install the package
system("R CMD build mypack")
system("R CMD INSTALL --preclean mypack_1.00.tar.gz")
system("R CMD check mypack")
# check for old documentation
try(file.remove(file.path(getwd(),"mypack.pdf")))
# generate new documentation
system("R CMD Rd2pdf mypack")
# and finally, make it available.
library("mypack")
Run Code Online (Sandbox Code Playgroud)

免责声明:我完全意识到我可能会以错误的顺序执行上述某些操作,或者做一些愚蠢的事情。我只是不确定是什么,但目前它有效。

创建包文档

我所有函数的标题中都有 R-markdown,因此当我执行此脚本时,帮助文件会自动创建为./man/*.Rd*函数名称在哪里)。再次,查看 plyr github 以感受一下这一点。

我还为这个包写了一个小插图。这是一个 .Rnw 文件,可以在 Rstudio 或任何其他文本编辑器中进行编辑。.Rnw 文件基本上是带有嵌入的knitr 块的乳胶。Rstudio 的编辑器可以选择独立于包本身进行编译。这似乎是一个很好的解决方案,每当我更新代码时,上面的脚本都会重新编译小插图,这是对所有内容的良好检查。

跨平台安装

我知道这个脚本可以在多台 Mac 上运行,但从未不幸必须使用 Windows 机器进行编译。不过,我的一位同事在 Windows 上使用编译后的包没有任何问题。

资源

对此有用的资源包括: