Мне нужно изменить функцию lm
(или, в конечном итоге, loess
), чтобы я мог использовать ее в geom_smooth
(или stat_smooth
) ggplot2.
Например, вот как обычно используется stat_smooth
:
> qplot(data=diamonds, carat, price, facets=~clarity) + stat_smooth(method='lm')`
Я хотел бы определить пользовательскую функцию lm2
для использования в качестве значения параметра method
в stat_smooth
, чтобы я мог настроить ее поведение.
> lm2 <- function(formula, data, ...)
{
print(head(data))
return(lm(formula, data, ...))
}
> qplot(data=diamonds, carat, price, facets=~clarity) + stat_smooth(method='lm2')
Обратите внимание, что я использовал method='lm2'
в качестве параметра в stat_smooth
. Когда я выполняю этот код, получаю ошибку:
Ошибка в eval(expr, envir, enclos): 'nthcdr' нужен список для CDR вниз
Что я не очень хорошо понимаю. Метод lm2
очень хорошо работает вне stat_smooth
. Я немного поиграл с этим, и у меня были разные типы ошибок, но, поскольку мне не нравятся инструменты отладки R, мне трудно их отлаживать. Честно говоря, я не понимаю, что я должен вставить в вызов return()
.