在R中绘制直方图时提示aes_()找不到Age对象,该如何解决?
报错原因
你的代码存在两处语法问题共同导致了该报错:
- 括号配对逻辑错误:
geom_histogram()被写入了ggplot()函数的参数括号内,+号的位置完全错误,导致R无法按照ggplot的图层语法规则解析代码,不会主动从你传入的AgeFromFirstDataSet数据集内查找列名。 aes_()接口使用不符合规范:aes_()是ggplot2早期用于支持非标准评估的接口,传入列名时需要搭配波浪线~声明为公式,直接写Age的情况下R会直接在全局环境中搜索独立的Age对象,而不是到数据集的列中查找,自然会报对象不存在的错误。
修复方法
目前ggplot2主流写法已经推荐直接使用aes()接口做列映射,修正括号位置和映射写法即可正常运行:
Plot_Laptop <- ggplot(AgeFromFirstDataSet, aes(x = Age)) + geom_histogram()
如果是兼容旧代码必须使用aes_(),正确写法如下:
Plot_Laptop <- ggplot(AgeFromFirstDataSet, aes_(x = ~Age)) + geom_histogram()
内容的提问来源于stack exchange,提问作者Ziggy_Statdust
相关产品推荐
相关产品推荐

