RStudio运行for循环时报错:找不到「check_reserved」函数如何解决?
R for循环报错排查步骤
- 检查
for函数是否被覆盖
原生R的for为内置原语,执行逻辑不会调用check_reserved函数,优先运行代码查看for的定义:
正常返回结果应为print(for).Primitive("for"),若返回其他内容,说明for被自定义函数/变量覆盖。 - 恢复原生
for函数
确认for被覆盖后,运行代码移除自定义的for对象即可恢复:
执行后重新运行测试代码rm(for)for(i in 1:4){print(i)}验证是否恢复正常。 - 排查启动配置污染
若第一步检查for定义正常,大概率是R启动时自动加载的配置文件、工作空间缓存导致异常:
按住Shift键启动RStudio,选择不恢复历史工作空间,跳过所有自定义启动配置加载后再次运行测试代码。如果恢复正常,删除用户主目录、当前项目目录下的.Rprofile文件和.RData缓存文件即可永久解决。 - 排查附加环境异常
运行代码查看当前附加的所有环境与安装包,排查是否有非官方开发包、自定义脚本加载了异常函数:
卸载可疑包后重新测试即可。search()
内容的提问来源于stack exchange,提问作者nwb
相关产品推荐
相关产品推荐

