r - 将 .rda 分配给一个对象并在 R 中的该对象中使用 predict
问题描述
我使用一些数据创建了一个模型。说我的模型是
x_glm<-glm(X~Y+Z)
现在我保存了 x_glm
save(x_glm, "/home/Dav/x_glm.rda")
现在我想将该模型加载到一个对象并将其用于另一个预测
mymodel<- load("/home/Dav/x_glm.rda)
predict(mymodel, newdata = data2, type = "response")
不工作!
但是如果我加载它而不将它传递给一个对象,那么
predict(x_glm, newdata = data2, type ="response")
作品。
如何将模型传递给对象并对该对象调用预测?
解决方案
load
并且save
用于将多个对象保存在一个文件中。load
从保存的环境中加载所有对象,并且无法分配结果。相反,您最终会加载已保存的相同名称。
对于单一的对象saveRDS
和readRDS
更合适。它们不保留保存的对象的原始名称,并且readRDS
可以并且应该分配来自的输出。好的做法是在.rds
此处使用文件扩展名。
saveRDS(x_glm, "x_glm.rds")
mymodel = readRDS("x_glm.rds")
如果您需要更安全地load
将环境保存在rda
文件中,您可以创建一个新环境,加载到该环境中,然后一次将一个对象拉出到您当前的环境中,如下所示:
my_env = new.env()
load("x_glm.rda", envir = my_env)
ls(envir = my_env) # find the name of the object you want
my_object = my_env$name_of_loaded_object
进入当前环境的风险load
是,与正在编辑的对象同名的任何对象都load
将被覆盖。
推荐阅读
- python - 如何在立交桥查询中连接字符串
- python - 在countour plot python中比较两个不同的数据集
- firebase-authentication - firebase / google authentication自定义密码重置链接不能在url中使用#
- elasticsearch - 最小聚合的弹性过滤器
- python - Python - 将 Google 表格行转换为字符串
- android - java.lang.NoClassDefFoundError: 解析失败:Lcom/huawei/hms/ads/identifier/AdvertisingIdClient;
- symfony - Symfony 5.2 错误:目录“var/cache/dev/jms_serializer”不存在
- sql-server - 约束逻辑和作业
- sql - 有什么方法可以将参数传递给 CTE?
- python - Python鼻子测试:在多个进程中运行测试时不调用自定义插件的添加**挂钩