将个人选择的全球环境保存到Rdata

时间:2017-09-29 23:39:47

标签: r save

当我们想要将全局环境保存到磁盘时,我们使用save(data.1, file = "data.Rdata") - 好吧。

当应保存一个特定对象时,我们使用data.1, data.2, data.3 - bien。

但是,应该保存环境data.1 data.2save(c(data.1, data.2), file = "data.Rdata")时应该保存的内容?

save(list = ls(data.1, data.2), file = "data.Rdata")class Document { var title:String var body = "" var length: Int { get { return body.characters.count } } init(title:String) { self.title = title } } let document1 = Document(title: "The Day", body: "It was a day to remember.") //error here on body 都无效。

1 个答案:

答案 0 :(得分:7)

有许多方法......也许并非无数,因为我们可以"可以"算他们,但是......

save(data.1, data.2, file = "data.Rdata")

这只会在rda文件中保存两个名为的对象。

对于后一种形式,当你举出

的例子时,你很接近
save(list = ls(.GlobalEnv), file = "data.Rdata")

请注意,ls(.GlobalEnv)会返回character向量,这是save所说的手册页所需要的。这应该触发实现这个向量可以从ls()或从创建向量的任何其他东西派生,包括手动:

save(list=c("data.1", "data.2"), file = "data.Rdata")

当以编程方式保存变量时,后一种技术非常方便,您可以选择不对变量名称进行硬编码(或者具有可变数量的变量名称)。

当试图解决这个问题时,在将它们放入save之前先尝试嵌套命令可能会提供信息。例如,c(data.1, data.2)只是连接数据对象,这可能有用或无用;但是,无论如何save期望...中的对象是一个符号或对象......但c()中的派生对象不会起作用。

同样地,ls(data.1)应该按照as.environment(pos) (from pit-roads.R#157) : invalid 'pos' argument的方式给你一个回复,表明你对ls函数的期待有点过分了。