在包中使用ggplot2时,Pesky ggplot2名称空间发生冲突

时间:2015-02-22 19:31:51

标签: r ggplot2 namespaces package cran

我正在为qmethod R包做出贡献,我刚刚写了一个函数来创建一堆ggplot2个对象。

该功能正常,但构建和R CMD Check警告我:

replacing previous import by ‘ggplot2::%+%’ when loading ‘qmethod’

我看过SE posts和@ hadley的book,但无法弄清楚问题。

以下是我NAMESPACE的相关部分:

import("ggplot2",
   "stringr")
import("psych")
importFrom("plyr","count")
importFrom("reshape2","melt")
importFrom("digest", "digest")
importFrom("RColorBrewer", "brewer.pal")

这是DESCRIPTION的一部分:

Imports:
  digest,
  psych,
  knitr,
  RColorBrewer,
  stringr,
  ggplot2,
  plyr,
  reshape2

我在函数array.viz.R中调用ggplot2函数的部分看起来像这样(以及更多):

g <- ggplot(
      data = array.viz.data
      ,aes(
        x = fsc  # factor scores, always same variable bc dataframe is constructed for every factor array by above loop
        ,y = ycoord  # just the random ycoord for viz
        ,ymax = max(ycoord)
        ,ymin = 0
        #,label = item.wrapped  # this for some reason causes an error
      )
    )
    g <- g + geom_tile(  # add background tiles
      aes(
        fill = item.sd
      )
    )

Ps。:您可以在此处找到当前的所有工作:https://github.com/maxheld83/qmethod/tree/array-viz

Pps:我知道ggplot2本身会导入一些我也导入的函数(例如reshape2),所以我预感到这可能是个问题。

1 个答案:

答案 0 :(得分:1)

事实证明,import("psych")是违规行为。

它似乎以某种方式再次导出ggplot::%+%,但我无法想到为什么会出现这种情况。

无论如何,修复是:

importFrom("psych", "principal")  # that's the function we were using
相关问题