由于缺少信息学背景,我很难理解 ggplot2 之间的差异aes
及其aes_string
对日常使用的影响。
从描述(?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.
whileaes_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 在他的书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
......从这个意义上说,这将帮助我找到对这些概念的一些澄清和日常使用的实用提示。