【问题标题】:Assigning .rda to an object and using predict in that object in R将 .rda 分配给一个对象并在 R 中的该对象中使用 predict
【发布时间】:2018-06-12 21:32:33
【问题描述】:

我使用一些数据创建了一个模型。说我的模型是

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") 有效。

如何将模型传递给对象并对该对象调用预测?

【问题讨论】:

    标签: r object load predict


    【解决方案1】:

    loadsave 用于将多个对象保存在一个文件中。 load 从保存的环境中加载所有对象,结果无法赋值。相反,您最终会加载已保存的相同名称。

    对于单个对象saveRDSreadRDS 更合适。它们不保留已保存对象的原始名称,并且可以并且应该分配来自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
    

    loading 进入您当前环境的风险是,您拥有的与 loaded 对象同名的任何对象都将被覆盖。

    【讨论】:

      猜你喜欢
      • 2016-04-27
      • 2020-11-10
      • 2015-12-15
      • 1970-01-01
      • 2017-01-25
      • 2019-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多