以下是我如何处理这个我们将调用的包的大纲mypack
。
更新 R 和 Rstudio
这应该是你做的第一件事。更新一切...
创建包骨架
使用roxygen2
包创建mypack
包骨架。在您的 IDE 中,试试这个:
library(roxygen2)
package.skeleton('mypack')
有关详细信息,请参阅http://cran.r-project.org/web/packages/roxygen2/roxygen2.pdf 。
编辑描述文件
使用可以让我看到非打印字符的阅读器编辑说明文件。值得检查一下您的文件中是否隐藏了任何奇怪的字符。RStudio 是一个很好用的编辑器。
将您的说明文件内容与其他人的 github 存储库进行比较,例如plyr
说明文件。
此外,这里有一个相关的问题,其中的答案解释了如何使用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 文件基本上是带有嵌入式 knitr 块的乳胶。Rstudio 的编辑器可以选择独立于包本身进行编译。这似乎是一个很好的解决方案,每当我更新我的代码时,上面的脚本都会重新编译小插图,这是对所有内容的一个很好的检查。
跨平台安装
我知道这个脚本可以在多个 Mac 上工作,但从来没有不幸不得不使用 Windows 机器进行编译。不过,我的一位同事在 windows 上使用编译包没有任何问题。
资源
有用的资源包括: