数据含'mh'列却无法识别,ggscatter绘制散点图报错求助
问题描述
执行以下R代码:
dat <- read.csv(file.choose("MH_Prolific_June")) ggscatter(dat, x="mh", y="Empathy", add="reg.line", conf.int = TRUE, cor.coef = TRUE, cor.method = "pearson", xlab= "Moral Humility", ylab = "Empathy")
得到错误信息:
Error in (function (mapping = NULL, data = NULL, stat = "smooth", position = "identity", : ℹ Error occurred in the 2nd layer. Caused by error in `FUN()`: ! object 'mh' not found
确认数据中存在mh列,但仍报该对象未找到,请求排查原因。
排查方案
- 核对列名真实拼写:别凭记忆写列名,执行
colnames(dat)输出所有列名,检查mh是否存在大小写差异(如MH)、前后空格(如mh)或特殊字符。直接复制列名到ggscatter的x参数中,避免手动输入失误。 - 验证数据框加载状态:运行
str(dat)查看数据结构,确认mh列确实存在且为数值型(相关性分析要求数值变量)。如果read.csv读取时出现解析错误,可能导致列未被正确加载。 - 调整
ggscatter参数写法:ggscatter属于ggpubr包,改用公式语法明确指定数据来源:ggscatter(dat, x = ~mh, y = ~Empathy, add="reg.line", conf.int = TRUE, cor.coef = TRUE, cor.method = "pearson", xlab= "Moral Humility", ylab = "Empathy") - 清除全局环境变量冲突:如果全局环境中存在名为
mh的变量,会干扰数据框列的调用。执行rm(mh)清除该变量后重新运行代码。
内容的提问来源于stack exchange,提问作者Shubaranjan2
相关产品推荐
相关产品推荐

