1

我正在整理一个包裹;为简单起见,使用一个功能和一个小插图来说明其用途。

在尝试添加小插图之前,我能够毫无困难地运行R CMD check packagenamefoo.R该包的R目录中有一个函数packagename(它用基本图形制作一个图)。目录中的小插图vignettes(一个.Rnw文件)调用函数foo如下:

<<fig1, fig=true, echo=true, include=true>>=
df0 <- data.frame(x1=rnorm(10))
foo(df0)
@

我想“按规则”玩,但R CMD check packagename照常运行会给出:

  When sourcing 'foo.R':
  Error: could not find function "foo"
  Execution halted

我尝试将以下内容添加到.Rnw文件中,但没有帮助:

\begin{document}
\VignetteDepends{packagename}

我也试过这个没有成功:

<<fig1, fig=true, echo=true, include=true>>=
df0 <- data.frame(x1=rnorm(10))
source("foo.R")
foo(df0)
@

请注意,该NAMESPACE文件已包含以下内容:

export(foo)

问题:

每次从包中调用函数时,是否需要在文件中添加特定source()命令?.Rnw如果是这样,我如何指定路径(即R CMD check检查小插图时从哪里开始?)

DESCRIPTION或者我应该通过将以下内容添加到文件中来采取简单的方法:

BuildVignettes: False

(因为我能够.pdf从现有.Rnw文件构建一个)。

我正在尝试遵循编写 R 扩展中的建议。

4

1 回答 1

1

您的小插图需要library("mypkg")位于顶部,以便foo可以找到您自己的功能,例如 。我相信这是因为小插图建筑在一个干净的环境中运行,所以它不知道您的包裹或任何其他相关信息,除非您提出它。

如果您已经有这样的一行,请在您的问题中加入一个小插图的示例,并包括您的sessionInfo(),因为我们可能需要它来解决它。

于 2013-03-17T11:37:24.593 回答