我想为 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 对象?