从 RC class 方法打印时出现未使用的参数错误

unused argument error when printing from RC class method

我正在创建一个 RC class 并在 class 方法中尝试 print(.self$something) 我得到:

Error in print(.self$something) : unused argument (.self$something)

我是 R 的新手,我是不是漏掉了什么? 这是一个要求我们使用 RC classes 的作业,使用 R6 不是一个选项。

myclass <- setRefClass("myclass",

      fields = list (
        formula = "formula",
        data = "data.frame", 
        something = "numeric"
      ), 

      methods = list (

          initialize = function(formula, data) {
              ...
          },

          print = function() {
            ...
            print(.self$something)

          },
      )
)

a <- myclass$new(formula,data)
a$print()
> Error in print(.self$something) : unused argument (.self$something)

编辑:额外信息,如果我尝试 a$something 我得到了我应该得到的。

尝试在打印功能中使用 cat,您现在处于本地打印功能环境中并尝试调用系统 "print" 功能。我建议你使用 cat 如下:

cat(.self$something)

它会完成工作

正如@Mohammed 提到的,这是因为我在自己的打印环境中进行打印。虽然 cat() 可能是一个选项,但后来我遇到了其他问题,其中 cat 没有打印对象(它可能是一个单独的线程,所以我不会在这里深入讨论)。

我最终做的是为该特定数据类型调用打印函数。例如,如果 somethingdata.frame 我调用了 print.data.frame(.self$something) 并按预期工作。