49

tl;我的问题的博士版本

如果我想导入包,我必须手动将import()指令写入我的 NAMESPACE 文件吗?roxygen2 似乎不会为我神奇地做到这一点,即使我在我的描述中将它们列为“Imports:”。

更完整的版本

这是一个非常愚蠢的问题,但我问是因为答案对我来说并不明显。

roxygen2用来处理我的 R 包文档。当我想确保导出一个函数时,我@export会在它的 roxygen 块中添加一个标签。随后的运行roxygenize()将相应地写入 NAMESPACE 指令。

但是,我的包目前导入了其他几个:

Depends:
    R (>= 2.13.0),
    ggplot2 (>= 0.8.9)
Imports:
    RColorBrewer,
    plyr,
    gridExtra

看起来虽然roxygen2 会为导出的函数重写 NAMESPACE 指令,但它不会自动重写 NAMESPACE 以反映我指定的应该在我的说明中导入的包。

4

1 回答 1

45

扩展我的评论,如果你想为你namespace的包/函数自动添加指令import,你可以通过将@imports packageor@importFrom package function行添加到roxygen2函数的文档标题来实现。

但是,正如@hadley 指出的那样,它只会修改NAMESPACE,但不会影响包DESCRIPTION

于 2011-12-25T15:47:27.673 回答