为 R 中的 S4/RC 个对象自定义控制台打印
Customize the console printing for S4/RC objects in R
在R中我们可以简单的在控制台输入变量名,控制台会自动打印出值。我创建了一个新的 S4/RC class 定义,并想创建一个更好的方法来在控制台中自动 "print"。如何为新 class 编辑控制台打印功能?
这是我在控制台中的代码:
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()
.
谢谢!
您需要为 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
#--------
在R中我们可以简单的在控制台输入变量名,控制台会自动打印出值。我创建了一个新的 S4/RC class 定义,并想创建一个更好的方法来在控制台中自动 "print"。如何为新 class 编辑控制台打印功能?
这是我在控制台中的代码:
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()
.
谢谢!
您需要为 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
#--------