我正在研究具有多个RMD的R包,以演示各种组件,例如,详细的示例,理论等。RMD根据建议存储在inst
文件实例中,并且我具有可复制的功能它们进入用户的工作目录,以便他们可以与示例进行交互并从中导出内容。
我希望这些RMD文件之一使用两个库,其中一个在Roxygen2示例中也使用(另一个不是)。包本身的功能都不需要这两个库,但是:
对于第一个包,输入需要几个变量(我想显示),并且如果没有可以在另一个包中找到的非常专门的函数,则所需的一个变量将很难计算。我认为实现此功能不在程序包的范围内(如果确实如此,那么它只是外部程序包功能的稍作调整的别名,我认为这不是一个好习惯)。
对于第二个软件包,它是boot
软件包。我只想显示一个使用我的软件包引导置信区间的示例。这是不必要的,但有用,因为它涉及随机过程。
将这些软件包包含在我的RMD文件中是一种好的做法。显然,对于Roxygen2示例中的一个,我将其作为建议的软件包使用,但从技术上讲,另一个似乎并不需要它。
我应该将它们列为建议包装吗?如果这样做,我应该在RMD文件中添加存在性检查以确保用户拥有它们,还是应该让他们自己找出解决方案?
预先感谢!
答案 0 :(得分:1)
是的,将它们列为建议的软件包,并在使用它们之前检查它们是否已使用requireNamespace
安装。
我不确定您在哪里看到将Rmd文件放入inst
的建议;而是将它们构造成小插图,并将它们放在vignettes
目录中可能更有意义。这是放置此类文档的标准位置。
通常没有必要将它们复制到工作目录中(通常,这是一种不好的做法,除非您仅在询问后这样做,并且注意不要踩踏用户自己的文件)。您可以使用system.file("doc/something.Rmd", package = "yourPackage")
从那里访问它们而无需复制。