为包创建新的geom时出现“找不到对象”错误

时间:2011-02-20 16:33:35

标签: r ggplot2

完全披露:此问题在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 在包中正常运行:

  1. 我将geom_rug_alt()定义为我的包中基本上称为GeomRugAlt的文件中的proto对象。 CommonFunctions.R包含example script的第3-42行。

  2. CommonFunctions.R中,我确定在CommonFunctions.R的定义之后包含build_accessor()的{​​{1}}行(example script中的第42行) }

  3. 在包geom_rug_alt文件中,我有GeomRugAlt行,DESCRIPTION首先出现

  4. 在包collate:文件中,我有CommonFunctions.R
  5. DESCRIPTION中,在将LazyLoad: false定义为CommonFunctions.R对象之前,我添加了require(ggplot2)来电。
  6. GeomRugAlt中,我在proto内呼叫foo.R之前添加了require(ggplot2)来电。
  7. 我不确定我还缺少什么。鉴于我的example script运行得很好,我怀疑问题不在于我的geom不起作用,而是我在包开发过程中做错了。

    很抱歉重复此问题,但我似乎找不到彻底解决问题的方法: - (

1 个答案:

答案 0 :(得分:1)

export(GeomRugAlt)放入NAMESPACE文件。