我需要修改lm
(或最终是loess
)函数,以便我可以在ggplot2的geom_smooth
(或stat_smooth
)中使用它。
例如,这是正常使用stat_smooth
的方式:
> qplot(data=diamonds, carat, price, facets=~clarity) + stat_smooth(method='lm')`
我希望定义一个自定义的lm2
函数,用作stat_smooth
中的method
参数的值,以便我可以自定义它的行为。
> lm2 <- function(formula, data, ...)
{
print(head(data))
return(lm(formula, data, ...))
}
> qplot(data=diamonds, carat, price, facets=~clarity) + stat_smooth(method='lm2')
请注意,我在stat_smooth
中使用了参数method='lm2'
。当我执行此代码时,会出现以下错误信息:
我不是很理解这个错误信息。在Error in eval(expr, envir, enclos) : 'nthcdr' needs a list to CDR down
stat_smooth
之外运行lm2
方法效果非常好。我尝试了一些修改但得到了不同类型的错误,但由于我不熟悉R的调试工具,所以很难进行调试。老实说,我不知道应该在return()
中放什么内容。