我正在使用R6软件包进行我正在开发的软件包中的OO编程。我的R6对象存储一个数据帧以及其他信息。当我在R6对象上调用该函数时,我想重写data.frame()函数,以便返回其存储的数据帧。
这可能吗?
例如:
library(R6)
myobj <- R6Class("myobj", list(
df = NULL,
args = NULL,
initialize = function(df, args=NULL) {
self$df <- df
self$args <- args
},
print = function(...) {
cat("myobj: \n")
cat(" df: ", nrow(self$df), " x ", ncol(self$df), "\n")
invisible(self)
},
data.frame = function(...) {
self$df
}
))
print(myobj) # works
df <- data.frame(myobj) # does not work
我已经阅读了R6文档,我想我很困惑如何覆盖打印,但不能覆盖R6对象上调用的其他函数。