执行SurveyYr匹配代码时返回integer(empty)的原因是什么?
问题解答
- 变量名语法错误:R 语言不支持直接使用带空格的变量名,你写的
year 1 = which(...)属于非法语法,要定义带空格的变量需要用反引号包裹变量名:
更推荐你使用无空格的变量名,比如`year 1` = which(SurveyYr == "2009_2010")year_1避免语法问题。 integer(empty)返回的核心原因:which()函数的作用是返回逻辑向量中为TRUE的位置索引,你当前的返回结果说明SurveyYr == "2009_2010"的所有匹配结果都是FALSE,没有符合条件的记录,所以which()返回了空整数向量。
排查建议:执行
unique(SurveyYr)查看SurveyYr里的所有取值,确认是否存在2009_2010这个值,大小写差异、前后多余空格、分隔符是横杠而非下划线这类细节都会导致匹配失败。
内容的提问来源于stack exchange,提问作者karenxu
相关产品推荐
相关产品推荐

