R 尝试在另一台计算机上使用glm模型进行预测时出错

R 尝试在另一台计算机上使用glm模型进行预测时出错,r,save,load,glm,R,Save,Load,Glm,我想在一台R机器上保存一个glm对象,并在另一台具有较新数据的机器上的另一个数据集上使用它进行预测。我尝试使用“保存并加载”,但没有成功。我做错了什么? 以下是一个玩具示例: # on machine 1: glm<-glm(y~x1+x2,data=dat1, family=binomial(link="logit") save(glm,file="glm.Rdata") # the file is stored in a folder. # on machine 2: load(gl

我想在一台R机器上保存一个glm对象,并在另一台具有较新数据的机器上的另一个数据集上使用它进行预测。我尝试使用“保存并加载”,但没有成功。我做错了什么? 以下是一个玩具示例:

# on machine 1:
glm<-glm(y~x1+x2,data=dat1, family=binomial(link="logit")
save(glm,file="glm.Rdata") # the file is stored in a folder.

# on machine 2:
load(glm.RData) # got an error:"Error in load(glm.RData) : object 'glm.RData' not found"
#I tried :
 load(file='glm.RData') # no error was displayed
  print(glm) # got an error:"Error in load(glm.RData) : object 'glm.RData' not found"

任何帮助都会很好。

根据@user3710546的建议,我将避免使用名称glm保存您的模型,因为它会屏蔽ie。阻止glm函数,使您难以在会话中使用它

使用save和load 通常用于将对象列表保存到文件,而不是单个对象。列表的第一个参数是“一个包含要保存的对象名称的字符向量”。所以你应该像这样使用它:

# On machine 1:
save(list = 'glm', file = '/path/to/glm.RData')

# On machine 2:
load(file = '/path/to/glm.RData')
请注意,文件扩展名通常区分大小写:您保存到扩展名为.RData的文件,但从扩展名为.RData的文件加载,这是不同的。这可以解释为什么找不到该文件

使用saveRDS和readRDS 使用save和load的另一种方法是使用and,它们设计为与一个对象一起使用。它们的使用略有不同:

# On machine 1
saveRDS(glm, file = '/path/to/glm.rds')

# On machine 2
glm = readRDS(file = '/path/to/glm.rds')
请注意.rds文件扩展名以及readRDS不会自动放入需要分配给它的环境这一事实

保存GLM的部分 如果您只想保存公式,即实际的文本字符串,您可以在glm$formula中找到它,其中glm是对象的名称。它以公式对象的形式返回,但您可以将其转换为带有.characterglm$formula的字符串,然后写入文本文件或其他内容


但是,如果您希望模型本身不使用创建它的数据集来减少磁盘空间,请查看,其中讨论了可以安全删除glm对象的哪些部分。

您是否在正确的工作区中?您可以使用loadfile.choose导航到正确的文件。您可能需要查看?getwd和?setwd。我跟随了@Pascal注释,发现glm文件的大小非常大,为0.5GB。它不应该是一个只包含公式的小五个吗?strglm会让你一窥里面储存的东西。我会避免使用glm作为名称,因为它是函数本身。我加载了文件,它工作了!谢谢你的帮助。然而,我真的不明白是否有办法只保存模型的forumla而不保存整个数据集?