В чем разница между aes и aes_string (ggplot2) в R
С отсутствующим опытом в информатике у меня есть трудности, чтобы понять различия между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
в оппозиции только вызывает значения из функции, но я не нашел источника, подтверждающего это предположение. Кроме того, мне неясно, как эти два отличаются и почему это должно относиться ко мне, когда я использую пакет.
Насайт Inside-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
... В этом смысле это помогло бы мне найти некоторые разъяснения по этим понятиям и практический совет для повседневного использования.