此问题已由 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.
有人知道我错过了什么吗?我附上了屏幕截图以供参考。完全披露:这是商业应用程序的工作。
我刚才遇到了这样的错误(除了我之前能够顺利构建包)。
事实证明我的错误是由格式不正确的描述文件引起的。修复那里的语法允许我的包构建。
以下是我如何处理这个包的概述,我们将其称为
mypack
。
这应该是您要做的第一件事。更新一切...
使用
roxygen2
包创建 mypack
包骨架。从您的 IDE 尝试以下操作:
library(roxygen2)
package.skeleton('mypack')
请参阅 http://cran.r-project.org/web/packages/roxygen2/roxygen2.pdf 了解更多详细信息。
使用可让我查看非打印字符的阅读器编辑说明文件。值得检查一下您的文件中是否隐藏了任何奇怪的字符。 RStudio 是一个很好用的编辑器。
将您的描述文件内容与其他人的 github 存储库进行比较,例如
plyr
描述文件。
此外,还有一个相关问题here,其答案进一步解释了描述文件的使用方式。
我使用脚本(如下)从 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 文件基本上是带有嵌入的knitr 块的乳胶。 Rstudio 的编辑器可以选择独立于包本身进行编译。这似乎是一个很好的解决方案,每当我更新代码时,上面的脚本都会重新编译小插图,这是对所有内容的良好检查。
我知道这个脚本可以在多台 Mac 上运行,但从未不幸必须使用 Windows 机器进行编译。不过,我的一位同事在 Windows 上使用编译后的包没有任何问题。
对此有用的资源包括:
我最近遇到了完全相同的问题 - 我的包无法在 RStudio 下编译,并出现错误,提示包目录不包含说明文件。我通过将描述文件的编码更改为 ANSI 解决了这个问题。
我刚刚经历过这个问题。我已经解决了我的问题,我猜您错误地更改了项目的目录(或位置)。因此,通过命令构建包: system("R CMD build mypack") 会给出错误消息。最好在某个新目录中重新定义一个新项目,然后尝试构建您的包。希望对你有帮助。
改变:
描述:1号线
Line2 Line3.
致:
描述:1号线2号线3号线。
它会起作用的!