С отсутствием фона в информатике мне трудно понять различия между aes
и aes_string
в ggplot2 и его последствиями для ежедневного использования.
Из описания (?aes_string
) я смог понять, что оба describe how variables in the data are mapped to visual properties (aesthetics) of geom
.
Кроме того, сказано, что aes uses non-standard evaluation to capture the variable names.
тогда как aes_string
использует regular evaluation
.
Из примера кода ясно, что оба производят один и тот же вывод (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
описывается Хэдли Уикхем в своей книге Advanced R как метод, позволяющий не только вызывать значения аргумента функций, но и код, который их создал.
Я бы предположил, что regular evaluation
в оппозиции вызывает только значения из функции, но я не нашел источник для подтверждения этого предположения. Кроме того, мне непонятно, как эти два отличаются друг от друга и почему это должно иметь отношение ко мне, когда я использую пакет.
На веб-сайте внутри-R упоминается, что 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.
Но в этом смысле мне непонятно, почему я должен когда-либо использовать aes
и не выбирать всегда для aes_string
при использовании ggplot2
... В этом смысле это поможет мне найти некоторые разъяснения по этим концепциям и практический совет для ежедневного использования.