Назначение .rda объекту и использование предиката в этом объекте в R - PullRequest
0 голосов
/ 13 июня 2018

Я создал модель, используя некоторые данные.Скажем, моя модель

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") работает.

Как передать модель впредсказание объекта и вызова на этом объекте?

1 Ответ

0 голосов
/ 13 июня 2018

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, ed будет перезаписан.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...