我正在整理一个包裹;为简单起见,使用一个功能和一个说明其用途的插图。
在尝试添加小插图之前,我能够毫无困难地运行R CMD check packagename
。
该包在foo.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
。
我正在尝试遵循Writing R extensions中的建议。
答案 0 :(得分:1)
您的插图需要在顶部library("mypkg")
,以便找到您自己的功能,例如foo
。我相信这是因为小插图建筑在一个干净的环境中运行,所以除非你提起它,否则它不知道你的包裹或其他任何其他物品。
如果您已经拥有这样的一行,请在您的问题中添加一个简短的小插图示例,并在我们可能需要的地方加入您sessionInfo()
来解决问题。