R语言报错:存在Attrition列却提示‘object not found’的咨询
Attrition列找不到错误的可能成因 - 未明确指定数据集或管道传递失效:调用
count()时如果没传入目标数据集(比如只写count(Attrition)而非count(hr_people_analytics_char_tbl, Attrition)),或者管道(%>%)前的代码出错导致数据未正确传递,R会在全局环境寻找Attrition对象而非数据框列。 - 列名匹配问题:R对大小写、空格完全敏感,检查实际列名是否是
attrition(全小写)、Attrition(带末尾空格)这类和你写的Attrition不一致的情况,可通过colnames(hr_people_analytics_char_tbl)查看准确列名。 - 管道步骤意外丢失列:如果用了
dplyr管道,前面的select()、mutate()等操作可能不小心排除了Attrition列,或者过滤后数据框结构异常。可以在管道中间插入glimpse()或head()确认当前数据是否包含目标列。 - 数据集被意外覆盖:代码中如果后续把
hr_people_analytics_char_tbl重新赋值给了其他对象(比如hr_people_analytics_char_tbl <- filter(...)时出错),原数据集会被替换,新数据可能没有Attrition列。 - 作用域冲突:如果在自定义函数内运行代码,函数参数名可能和
Attrition重名,导致R优先识别参数而非数据框列;或者数据集未被正确加载到当前函数作用域中。
内容的提问来源于stack exchange,提问作者Ed_Gravy
相关产品推荐
相关产品推荐

