使用dput()保存tidymodels模型对象报错:missing_arg()未找到
解决R中保存_rpart/model_fit模型本地复现的问题
不建议用
dput()保存这类复杂模型对象,因为dput()会将对象转换为可执行的R代码,但这类模型内部包含R的内部辅助函数引用(比如missing_arg()),这个函数不会暴露在用户的工作环境中,直接运行生成的代码就会报错找不到该函数。更可靠的方法是用R标准的序列化工具
saveRDS()和readRDS(),步骤如下:- 在课程工作区保存模型:
把saveRDS(your_model, file = "tree_model.rds")your_model替换成你的实际模型对象名,tree_model.rds是保存的文件名,可自行修改。 - 将这个
.rds文件下载到本地,然后在本地R环境中读取:
这样就能完整复现训练好的模型,不会出现函数找不到的问题。loaded_model <- readRDS("tree_model.rds")
- 在课程工作区保存模型:
如果一定要尝试修复
dput()的代码,需要把生成代码中所有的missing_arg()替换为base::missing_arg(),强制调用base包中的内部函数,但这种方法容易遗漏,且对复杂模型可能出现其他问题,远不如saveRDS()省心。
内容的提问来源于stack exchange,提问作者Economist
相关产品推荐
相关产品推荐

