С отсутствием фона в информатике мне трудно понять различия между 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... В этом смысле это поможет мне найти некоторые разъяснения по этим концепциям и практический совет для ежедневного использования.