为CO2排放量与GDP关系图添加标签时出现“GDP对象未找到”错误
解决R绘图中
object 'GDP' not found的错误 嘿,这个问题我太熟悉了!你碰到的object 'GDP' not found报错,核心原因很简单:你的plot()函数用了data=emissions参数,所以它知道要从emissions数据框里读取CO2和GDP变量,但text()函数默认只会在全局环境里找变量,而GDP和CO2其实是藏在emissions数据框里的,它自然找不到啦。
给你两种简单的解决方案,任选其一就行:
方案1:用with()指定数据环境
with()函数可以临时让代码在指定的数据框环境里运行,这样text()就能直接找到CO2和GDP了:
library(UsingR) plot(CO2 ~ GDP, data=emissions, pch = 20, main='CO2 emissions vs. GDP') with(emissions, text(CO2, GDP, row.names(emissions), cex=0.7))
方案2:直接用数据框索引变量
明确告诉text()变量来自emissions数据框,用$符号索引就行:
library(UsingR) plot(CO2 ~ GDP, data=emissions, pch = 20, main='CO2 emissions vs. GDP') text(emissions$CO2, emissions$GDP, row.names(emissions), cex=0.7)
小提示
以后用R绘图要注意:像plot()(当用公式形式时)、lm()这类函数支持data参数,但像text()、points()这类基础绘图函数是没有data参数的,这时候要么用with()切换环境,要么直接用数据框索引变量,就不会再出现找不到变量的错误啦。
内容的提问来源于stack exchange,提问作者krakowi
相关产品推荐
相关产品推荐

