编写保存和加载对象的函数

时间:2014-01-02 01:47:21

标签: r

我正在尝试使用调用save()和load()的包装函数来简化保存和加载对象。

以下是代码:

#Just creates a file path
.z$filePath.set <- function(filename){
    return(paste("C:/Users/Michael/Documents/Computer/R/Data/",
    filename,sep=""))
}

#Saves an object
.z$file.write <- function(obj,fname){    
    filepath = .z$filePath.set(fname)
    fp = file(filepath,open="wb")
    save(obj,file=fp)
    close(fp)
}

#Loads an object
.z$file.read <- function(fname){
    filepath = .z$filePath.set(fname)
    fp = file(filepath,open="rb")
    load(fp,envir=.GlobalEnv)
    close(fp)
}

#Then run the code (tmp is a large data.frame):
    .z$file.write(obj=tmp,fname="tmp.R")
    rm(tmp)
    .z$file.read(fname="tmp.R")

问题是从文件“tmp.R”读入R的对象被命名 “obj”而不是原来的“tmp”。在调用.z $ file.read()之后重命名对象是一件麻烦事。有没有一种简单的方法可以在.z $ file.read()中将obj分配给tmp?我尝试在.z $ file.read()中放置一个assign语句,但它没有用。

感谢。

0 个答案:

没有答案