将变量从RData文件加载到对象中,是否具有内存效率?

时间:2014-06-15 15:02:38

标签: r reference-class

以下是一个例子:

MyClass = setRefClass("MyClass", fields = c("x", "y"))
MyClass$methods(
    initialize = function(xinit=0, yinit=0, filename="") {
        if(file.exists(filename)) {
            message("yes, it is there!")
            load(filename)
            print(x)
            print(y)
            x <<- x
            y <<- y
        } else {
            x <<- xinit
            y <<- yinit
        }
    }
)

x = 15
y = 20
save(x, y, file="/tmp/xydata")
## z = MyClass(x, y)
z = MyClass(filename="/tmp/xydata")
z$x
z$y

在初始化函数中,是否复制了x和y的值?如果它们的尺寸很大,那会有问题吗? 有没有更好的方法从文件加载变量?

1 个答案:

答案 0 :(得分:0)

load()命令允许您指定将数据加载到哪个环境。如果要加载到全局环境中,只需使用

直接执行此操作即可
load(filename, envir=globalenv())