您好我正在尝试使用R&lt; S3的S3课程。所以我在关注https://www.r-bloggers.com/object-oriented-programming-in-r/之后遇到了问题。在类nc <- list2env(nc)
中用于将对象保存在自己的环境中,我将创建包含大型数据集的对象,因此我非常喜欢指针样式。当您想要创建对象的副本(newObject<-oldObject
)时会出现问题,这只会创建指向对象的指针的副本,而不是对象的副本。这是一个问题,因为如果我更改了旧对象或新对象的某些内容,则会注册相同的更改。
我在想是否可以使用我自己的函数重载<-
运算符,该函数将对象复制到一个新的环境中会很棒。有谁知道怎么做?
我知道我可以用以下方式克隆环境:
newObject<- as.environment(as.list(oldObject, all.names=TRUE))
但是当我尝试重载赋值运算符时,它不起作用,即
'<-.MyClass'<-function(NOT SURE WHAT SHOULD COME HERE){
newObject<- as.environment(as.list(oldObject, all.names=TRUE))
return(newObject)
}
我已经让它与其他运营商合作,例如+,*