由于我的信息学背景欠缺,我很难理解ggplot2中和之间的差异及其对日常使用的影响。
从描述(?aes_string
)中,我理解了两者都描述了数据中的变量如何映射到几何图形的美学特性。
此外,它还指出使用正则表达式评估。
从示例代码可以清楚地看出,两者都会产生相同的输出(一组未评估的表达式列表)。
> 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
非标准评估
被Hadley Wickham在他的书Advanced R中描述为一种方法,不仅调用函数参数的值,而且还调用生成这些值的代码。
我认为,相反地,常规评估
仅调用函数中的值,但我没有找到可以确认这个假设的来源。此外,我不清楚这两者之间的区别以及当我使用该软件包时,这为什么对我很重要。
在inside-R网站上提到,aes_string在编写创建图形的函数时特别有用,因为您可以使用字符串来定义美学映射,而不必使用表达式。
但是从这个意义上说,我不清楚为什么我应该使用aes
而不是始终选择aes_string
每次使用ggplot2
...在这方面,希望能够对这些概念进行一些澄清,并提供日常使用的实用提示。
aes
或aes_string
时绘图行为不同。它以不同的方式搞乱了内存并绘制出不同的图形... 例如,请参见https://dev59.com/zX_aa4cB1Zd3GeqP1lKn。ggplot本身就是一个巨大的问题。 - Stéphane!!
之后,如果您想通过编程方式传递变量名,则应使用aes_string
已不再正确。请参见https://dev59.com/mWEh5IYBdhLWcg3whT3T#53168593。 - moodymudskipper