Chciałbym utworzyć niestandardowy obiekt Stat dla ggplot2. (W szczególności chciałbym stworzyć gładszą, która działa inaczej niż te, które pozwala na stat_smooth
- na przykład bez funkcji modelowania y~x
- ale istnieją inne niestandardowe statystyki, które chciałbym utworzyć, nawet gdyby istniało obejście dla mojego konkretnego przypadku).Tworzenie niestandardowego obiektu Stat w ggplot2
znalazłem this suggested solution from 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
Jednak gdy próbuję go uzyskać:
Error in proto(Stat, { : object 'Stat' not found
Po rozglądając się po ggplot code znalazłem where Stat is defined. Jednak obiekt Stat
jest, o ile mogę to stwierdzić, never exported from ggplot2.
Mogę napisać nowy obiekt stat w folderze ggplot2/R
, a następnie ponownie zainstalować pakiet, ale oczywiście byłoby to uciążliwe i sprawiłoby, że rozwiązanie bardzo trudno byłoby udostępnić innym. Jak mogę utworzyć niestandardowy obiekt Stat poza obszarem nazw ggplot? Aby uzyskać dostęp do obiektu nie wyeksportowanego, można użyć
Czy "ggplot2 ::: Stat' help? – baptiste
@baptiste Nope, 'Błąd: 'Stat' nie jest eksportowanym obiektem z 'namespace: ggplot2''. Czy Ci to pasuje? –
działa z trzema ':::' – baptiste