【问题标题】:Customize the console printing for S4/RC objects in R自定义 R 中 S4/RC 对象的控制台打印
【发布时间】:2017-01-18 18:47:06
【问题描述】:

在R中我们可以简单的在控制台输入变量名,控制台会自动打印出值。我创建了一个新的 S4/RC 类定义,并希望创建一种更好的方式来在控制台中自动“打印”。如何编辑新类的控制台打印功能?

这是我在控制台中的代码:

ClassA<-setRefClass("ClassA",fields=list(value="numeric"))

"print.ClassA"<-function(object){
      cat("--------\n")
     cat(object$value,"\n")
     cat("--------\n")
}

classobject<-ClassA$new(value=100)

classobject # it doesn't print nicely in the console.
#Reference class object of class "ClassA"
#Field "value":
#[1] 100

print(classobject) # this works
#--------
#100 
#--------

我的目标是避免一直输入“print”;只需在控制台中输入对象名称,它就会很好地打印出来,就像调用print()一样。

谢谢!

【问题讨论】:

    标签: r printf s4 reference-class


    【解决方案1】:

    您需要为您的RefClass 对象定义一个show 方法。阅读?setRefClass 了解有关如何编写方法的详细信息。这有效:

    #the print function: note the .self to reference the object
    s<-function(){
         cat("--------\n")
         cat(.self$value,"\n")
         cat("--------\n")
    }
    #the class definition
    ClassA<-setRefClass("ClassA",fields=list(value="numeric"),methods=list(show=s))
    classobject<-ClassA$new(value=100)
    classobject
    #--------
    #100 
    #--------
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-25
      • 2012-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多