当我们想要将全局环境保存到磁盘时,我们使用save(data.1, file = "data.Rdata")
- 好吧。
当应保存一个特定对象时,我们使用data.1, data.2, data.3
- bien。
但是,应该保存环境data.1
data.2
和save(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
都无效。
答案 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
函数的期待有点过分了。