当前位置:  开发笔记 > 前端 > 正文

为S3类定义show方法

如何解决《为S3类定义show方法》经验,为你挑选了0个好方法。

我很震惊地发现该节目是S4通用的,而且我找不到使用S3调度来使show函数工作的方法.一个简单的演示:

> x <- 1:5
> xx <- structure(x,class="aClass")

> show.aClass <- function(object){
+     cat("S3 dispatching.\n")
+     print(object)
+ }

> xx
[1] 1 2 3 4 5

没有S3在这里调度......

> setMethod("show","aClass",function(object){
+     cat("S4 dispatching.\n")
+     print(object)
+ })
in method for ‘show’ with signature ‘"aClass"’: no definition for class “aClass”
[1] "show"

> xx
[1] 1 2 3 4 5

你觉得呢?

> print.aClass <- function(object){
+     cat("the print way...\n")
+     print(as.vector(object)) #drop class to avoid infinite loop!
+ }

> xx
the print way...
[1] 1 2 3 4 5

对于打印它是有效的.

我有很好的理由继续使用S3(其中很大一部分是开销的最小化,因为对象将在bootstrapping中广泛使用).我该如何在这里定义不同的节目和打印方法?

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有