如何解决ggplot()运行时出现对象/变量缺失的报错问题
ggplot2运行报错解决方案
错误原因
报错是由R的代码解析规则导致:ggplot2图层叠加使用的+运算符不能单独放在新行的开头。R解析代码时,若一行末尾没有未闭合的括号、运算符等标识,会自动判定该行代码执行完毕。你把+放在第二行开头时,第一行的ggplot(ageDF, aes(x = age, y = survival_time))会被作为独立代码尝试执行,没有图层的ggplot对象无法正常渲染,因此触发报错。
修正方案
将+放在上一行代码的末尾即可,修正后代码如下:
ageDF = data.frame(cbind(dataset$survival_time, dataset$age)) ageDF = ageDF[complete.cases(ageDF), ] ggplot(ageDF, aes(x = age, y = survival_time)) + geom_point(col = "blue") + geom_smooth(method=lm)
如果你习惯把+放在新行开头,可以用括号包裹整段ggplot代码,R会等待括号内所有代码解析完成后再执行:
ageDF = data.frame(cbind(dataset$survival_time, dataset$age)) ageDF = ageDF[complete.cases(ageDF), ] ( ggplot(ageDF, aes(x = age, y = survival_time)) + geom_point(col = "blue") + geom_smooth(method=lm) )
可选优化
你现有的数据处理代码可以简化,以下代码和你原来的两行数据处理代码效果完全一致,写法更简洁:
ageDF <- na.omit(data.frame( survival_time = dataset$survival_time, age = dataset$age ))
内容的提问来源于stack exchange,提问作者user15300490
相关产品推荐
相关产品推荐

