R6 OO编程中的方法覆盖

时间:2019-04-14 17:14:59

标签: r r6

我正在使用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对象上调用的其他函数。

0 个答案:

没有答案