在包中使用 ggplot2 时讨厌的 ggplot2 命名空间冲突
Pesky ggplot2 namespace conflict when using ggplot2 in package
我正在为 qmethod R 包做贡献,我刚刚编写了一个创建一堆 ggplot2
对象的函数。
该函数工作正常,但构建和 R CMD Check
警告我:
replacing previous import by ‘ggplot2::%+%’ when loading ‘qmethod’
我查看了 SE posts and @hadley's 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
),所以我预感这可能是个问题。
事实证明,import("psych")
是有问题的包。
它似乎以某种方式再次导出 ggplot::%+%
,但我想不出为什么会这样。
无论如何,解决办法是:
importFrom("psych", "principal") # that's the function we were using
我正在为 qmethod R 包做贡献,我刚刚编写了一个创建一堆 ggplot2
对象的函数。
该函数工作正常,但构建和 R CMD Check
警告我:
replacing previous import by ‘ggplot2::%+%’ when loading ‘qmethod’
我查看了 SE posts and @hadley's 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
),所以我预感这可能是个问题。
事实证明,import("psych")
是有问题的包。
它似乎以某种方式再次导出 ggplot::%+%
,但我想不出为什么会这样。
无论如何,解决办法是:
importFrom("psych", "principal") # that's the function we were using