С отсутствующим фоном в информатике мне трудно понять различия между aes
и aes_string
в ggplot2 и его последствиями для ежедневного использования.В чем разница между aes и aes_string (ggplot2) в R
Из описания (?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
описывается Hadley Wickham in his book Advanced R как метод, чтобы не вызывать только значения в функции аргумента, но и код, который произвели их.
Я бы предположил, что regular evaluation
в оппозиции вызывает только значения из функции, но я не нашел источник для подтверждения этого предположения. Кроме того, мне непонятно, как эти два отличаются друг от друга и почему это должно иметь отношение ко мне, когда я использую пакет.
На inside-R website упоминается, что 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
... В этом смысле это помогло бы мне найти некоторые разъяснения по этим концепциям и практический совет для ежедневного использования.