Z brakującym tłem w informatyce, mam trudności w zrozumieniu różnic między aes
i aes_string
w ggplot2 i jego konsekwencjach dla codziennego użytkowania.Jaka jest różnica między aes i aes_string (ggplot2) w R
Z opisu (?aes_string
) udało mi się zrozumieć, że zarówno describe how variables in the data are mapped to visual properties (aesthetics) of geom
.
Ponadto mówi się, że aes uses non-standard evaluation to capture the variable names.
natomiast aes_string
używa regular evaluation
.
z przykładu kodu jest oczywiste, że zarówno w produkcji tego samego wyjścia (a list of unevaluated expressions
):
> aes_string(x = "mpg", y = "wt")
List of 2
$ x: symbol mpg
$ y: symbol wt
> aes(x = mpg, y = wt)
List of 2
$ x: symbol mpg
$ y: symbol wt
Non-standard evaluation
opisaną przez Hadley Wickham in his book Advanced R jako sposób, nie można ograniczyć do wartości w funkcji argumentu ale również kod, który wyprodukował je.
Zakładam, że regular evaluation
w opozycji wywołuje tylko wartości z funkcji, ale nie znalazłem źródła, aby potwierdzić to założenie. Ponadto nie jest dla mnie jasne, w jaki sposób te dwa elementy się różnią i dlaczego ma to znaczenie dla mnie, gdy korzystam z pakietu.
Na inside-R website wspomniano, że aes_string is particularly useful when writing functions that create plots because you can use strings to define the aesthetic mappings, rather than having to mess around with expressions.
Ale w tym sensie jest dla mnie jasne, dlaczego należy zawsze używać aes
i nie zdecydować się na zawsze, gdy używając ggplot2
aes_string
... W tym sensie, że to mi pomoże znaleźć wyjaśnienia dotyczące tych koncepcji i praktyczne wskazówki dotyczące codziennego użytkowania.