r - 将可选输入传递给 r 中的函数时如何解析
问题描述
我正在研究 R 中用于数据科学的第一个示例,我看到以下代码:
ggplot(data=mpg) +
geom_point(mapping = aes(x=displ,y=hwy))
我的理解是这mpg
是全球定义的。这里的细节有点模糊。
无论如何,我可以忍受。我真正的问题是下一行。特别是,如何在使用displ
时hwy
有效。如果我只运行aes
构造函数调用(构造函数?函数?)displ
并且hwy
在结果输出中似乎是字符串。在大多数其他语言中,我认为这会导致错误,因为displ
并且hwy
无法在当前工作区中解决(例如a=hwy
,在 R 中a<-hwy
会导致错误)。
R是否有一些行为,其中任何看起来像字符串(即displ
但不是4.0
示例)但与变量或函数不匹配的变量在传入时成为被调用函数/构造函数中的字符串,或者通过equals(如情况在这里)或者甚至更普遍地作为函数的输入????这是怎么回事?
奖励:如果您习惯了其他语言,是否有很好的资源来理解这一点以及任何其他在 R 中可能看起来很奇怪的怪癖?
解决方案
R 允许在评估参数方面有很大的灵活性,并且像这样的包ggplot2
可以利用它。函数可以看到作为参数传递的表达式,然后以特殊的方式对其进行评估。 ggplot2
这样做,所以当geom_point()
计算表达式时displ
,它会在一个环境中执行此操作,该环境将数据框mpg
附加在其他所有内容之前,并在那里找到列。
推荐阅读
- python - Selenium - IE 没有无头运行
- amazon-web-services - AWS SQS Lambda 触发器和并发
- caching - 缓存是 2 路是什么意思?4路?与直接映射缓存相比,它有哪些变化?
- kubernetes - 特定 pod 的 client-go 监视事件
- stroke-dasharray - stroke-dasharray 数字是如何工作的?
- node.js - swagger-ui-express 不显示响应
- c - strcpy 的字符串实现
- python - 终端 Visual Studio Code 中看起来更漂亮的输出
- php - 路线 [admin.funcionarios] 未定义
- authentication - 如何根据远程 Active Directory 凭据自动对公共网站的用户进行身份验证