如何在 R 中为 S4 对象创建自定义打印方法
How to create custom print method for S4 object in R
我创建了自定义 class 和打印方法:
#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()
时,我应该如何使自定义打印方法以相同的方式工作?
谢谢!
自己想出来的。对于 S4 对象,您需要使用 show()
.
如果我使用这个就可以了:
setMethod(f = "show",
signature = "myClass",
definition = function(object){
print("2")
})
有效:
> test
[1] "2"
我创建了自定义 class 和打印方法:
#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()
时,我应该如何使自定义打印方法以相同的方式工作?
谢谢!
自己想出来的。对于 S4 对象,您需要使用 show()
.
如果我使用这个就可以了:
setMethod(f = "show",
signature = "myClass",
definition = function(object){
print("2")
})
有效:
> test
[1] "2"