如何在R中为S4对象创建自定义打印方法

时间:2018-10-17 02:44:16

标签: r s4 r-s3

我创建了一个自定义类和打印方法:

#custom class
myClass <- setClass(Class = "myClass",
                    slots = c(a = "character"),
                    prototype = list(a = character()))
#custom print method
print.myClass <- function(theObject){
    print("2")
}
#create a variable for testing
test <- myClass(a = "1")

如果我使用print(test),效果很好:

> print(test)
[1] "2"

但是,如果我只运行不带print()的变量,它将显示不同的内容。

> test
An object of class "myClass"
Slot "a":
[1] "1"

在不使用print()的情况下运行自定义打印方法时,我应该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:2)

我自己弄清楚了。对于S4对象,您需要使用show()

如果我使用它,它将起作用:

setMethod(f = "show",
          signature = "myClass",
          definition = function(object){
              print("2")
          })

有效:

> test
[1] "2"