8

我想为 ggplot2 创建一个自定义 Stat 对象。(具体来说,我想创建一个与允许的工作方式不同的平滑stat_smooth器 - 例如,没有y~x建模功能 - 但即使有针对我的特定情况的解决方法,我也想创建其他自定义统计信息)。

从 Hadley Wickham 找到了这个建议的解决方案

StatExpo <- proto(Stat, {
  objname <- "expo"
  desc <- "Exponential smoothing"
  default_geom <- function(.) GeomLine

  calculate_groups <- function(., data, scales, variable="x", ...) {
    data$y <- HoltWinters(data$x, ...)
  }
})
stat_expo <- StatExpo$new

但是,当我尝试时,我得到:

Error in proto(Stat, { : object 'Stat' not found

环顾ggplot 代码后,我发现了 Stat 的定义位置。但是,Stat据我所知,该对象从未从 ggplot2 导出

我可以在ggplot2/R文件夹中编写新的 stat 对象,然后重新安装包,但显然这会很麻烦,并且很难与其他人共享解决方案。如何在 ggplot 命名空间之外创建自定义 Stat 对象?

4

2 回答 2

4

ggplot2:::Stat可用于访问非导出对象。

于 2013-08-07T16:40:56.170 回答
1
getFromNamespace('Stat','ggplot2')
于 2015-07-31T06:20:18.397 回答