Ich brauche die lm
(oder eventuell loess
) zu modifizieren, damit ich es in ggplot2 die Verwendung geom_smooth
(oder stat_smooth
).lm oder Löss Funktion modifizieren geom_smooth die innerhalb ggplot2 verwenden
Zum Beispiel ist dies, wie stat_smooth
normalerweise verwendet wird:
> qplot(data=diamonds, carat, price, facets=~clarity) + stat_smooth(method='lm')`
Ich möchte eine benutzerdefinierte lm2
Funktion definieren als Wert für den Parameter method
in stat_smooth
zu verwenden, so kann ich ihr Verhalten anpassen.
> lm2 <- function(formula, data, ...)
{
print(head(data))
return(lm(formula, data, ...))
}
> qplot(data=diamonds, carat, price, facets=~clarity) + stat_smooth(method='lm2')
Bitte beachte, dass ich method='lm2'
als Parameter in stat_smooth
verwendet haben. Wenn ich diesen Code ausführen, um einen den Fehler:
Error in eval(expr, envir, enclos) : 'nthcdr' needs a list to CDR down
Was ich nicht verstehe sehr gut. Die Methode lm2
funktioniert sehr gut, wenn sie außerhalb von stat_smooth
ausgeführt wird. Ich habe damit ein bisschen gespielt und ich habe verschiedene Arten von Fehlern, aber da ich mit den Debug-Tools von R nicht vertraut bin, ist es schwierig für mich, sie zu debuggen. Ehrlich gesagt, bekomme ich nicht, was ich in den return()
Anruf setzen sollte.
Danke !! nette Antwort, mein Problem war, dass ich nicht wusste, dass ich die match.call anrufen musste und wie man sie benutzt. Was ich wirklich tun wollte, ist, die Auswertung von lm für Datasets mit zu wenig Punkten zu überspringen (dies kann passieren, wenn Sie Facetten verwenden, siehe http://groups.google.com/group/ggplot2/browse_thread#thread/df6da9d72f0a1dbf#). aber ich wollte einen allgemeinen Fall sehen. – dalloliogm
Am Ende löste ich mein Problem, indem ich es dem Autor von ggplot2 meldete und darauf wartete, dass er es löste. – dalloliogm