Con lo sfondo mancante in informatica, ho difficoltà a comprendere le differenze tra aes
e aes_string
in ggplot2 e le sue implicazioni per l'uso quotidiano.Qual è la differenza tra aes e aes_string (ggplot2) in R
Dalla descrizione (?aes_string
) sono stato in grado di capire che sia describe how variables in the data are mapped to visual properties (aesthetics) of geom
.
Inoltre si dice che aes uses non-standard evaluation to capture the variable names.
mentre aes_string
utilizza regular evaluation
.
Da esempio di codice è chiaro che entrambe producono la stessa uscita (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
è descritto da Hadley Wickham in his book Advanced R come metodo per chiamare non solo i valori di un argomento funzioni ma anche il codice che li ha prodotti
Suppongo che l'opposizione regular evaluation
invochi solo i valori dalla funzione, ma non ho trovato una fonte per confermare questa ipotesi. Inoltre non mi è chiaro come questi due differiscano e perché questo dovrebbe essere rilevante per me quando uso il pacchetto.
Sul inside-R website si dice che 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.
Ma in questo senso non è chiaro per me perché dovrei mai usare aes
e non sempre optare per aes_string
ogni volta usando ggplot2
... In questo senso mi avrebbe aiutato per trovare alcuni chiarimenti su questi concetti e un suggerimento pratico per l'uso quotidiano.