这是一个例子:
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 的值?如果它们的尺寸很大,会不会有问题?有没有更好的方法从文件中加载变量?