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

时间:2014-02-01 02:40:37

标签: r rstudio roxygen2

另一位用户已在RStudio帮助页面here上询问此问题,但未得到答复。

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

(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.

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

Arrows point out that the DESCRIPTION file exists in the build directory

4 个答案:

答案 0 :(得分:9)

我刚刚遇到了这样的错误(除了我之前能够构建包而没有发生事故)。

原来我的错误是由一个格式不正确的描述文件引起的。修复语法允许我的包构建。

答案 1 :(得分:4)

以下是我们如何针对我们称之为mypack的套餐进行此处理的概述。

更新R和Rstudio

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

创建包骨架

使用roxygen2包创建mypack包骨架。在IDE中,试试这个:

library(roxygen2)
package.skeleton('mypack')

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

编辑描述文件

使用能够查看非打印字符的阅读器编辑DESCRIPTION文件。值得检查一下您的文件中是否隐藏有任何奇怪的字符。 RStudio是一个很好用的编辑器。

将您的DESCRIPTION文件内容与其他人的github存储库for example the plyr description file进行比较。

此外,还有一个相关问题here,其中的答案更详细地解释了如何使用DESCRIPTION文件。

构建包

我使用脚本(下面)在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")

免责声明:我完全清楚我可能会在错误的顺序中遇到上述情况,或者做些蠢事。我只是不确定是什么,现在还可以。

创建包文档

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

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

跨平台安装

我知道这个脚本适用于多个mac,但从来没有不幸使用Windows机器进行编译。我的一位同事正在Windows上使用已编译的软件包,没有任何麻烦。

资源

有用的资源包括:

答案 2 :(得分:3)

我最近遇到了完全相同的问题 - 我的软件包无法在RStudio下编译,并显示包目录不包含DESCRIPTION文件的错误。我通过将DESCRIPTION文件的编码更改为ANSI来解决了这个问题。

答案 3 :(得分:-2)

变化:

  

描述:Line1

         Line2 

         Line3.

要:

  

描述:Line1 Line2 Line3。

它会起作用!