完全披露:此问题在ggplot2 google group
上重复我正在开发一个大量使用ggplot2
的软件包。我已经创建了自己的geom - geom_rug_alt
- 作为一种在地块的顶部/右部而不是默认位置放置地毯条纹的方法。
我的问题是,当geom_rug_alt()
定义并在single script内调用时,它似乎很好。 (请自行尝试验证。)但是,在我的包geom_rug_alt()
中定义了一个文件(CommonFunctions.R
)并在另一个文件中调用(Residuals()
更大函数的函数{{1} }})。当我在某事上致电foo.R
时,我收到此错误:
foo.R
现在,我已经完成了一些事情(Hadley在this thread中建议),以确保Error in geom_rug_alt(aes(x = NULL, y = within.group.residuals, color = factor(within.1.sd.of.the.mean.of.all.residuals)), :
object 'GeomRugAlt' not found
在包中正常运行:
我将geom_rug_alt()
定义为我的包中基本上称为GeomRugAlt
的文件中的proto
对象。 CommonFunctions.R
包含example script的第3-42行。
在CommonFunctions.R
中,我确定在CommonFunctions.R
的定义之后包含build_accessor()
的{{1}}行(example script中的第42行) }
在包geom_rug_alt
文件中,我有GeomRugAlt
行,DESCRIPTION
首先出现
collate:
文件中,我有CommonFunctions.R
行DESCRIPTION
中,在将LazyLoad: false
定义为CommonFunctions.R
对象之前,我添加了require(ggplot2)
来电。GeomRugAlt
中,我在proto
内呼叫foo.R
之前添加了require(ggplot2)
来电。我不确定我还缺少什么。鉴于我的example script运行得很好,我怀疑问题不在于我的geom不起作用,而是我在包开发过程中做错了。
很抱歉重复此问题,但我似乎找不到彻底解决问题的方法: - (
答案 0 :(得分:1)
将export(GeomRugAlt)
放入NAMESPACE
文件。