저는 show가 S4 generic이라는 사실을 알게되어 기쁩니다. 그리고 show function을 사용하기 위해 S3 디스 패칭을 사용할 방법을 찾을 수 없습니다. 간단한 데모 :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에 머물러야 할 좋은 이유가 있습니다. (그 중 큰 부분은 오버 헤드 최소화입니다. 객체는 부트 스트래핑에서 광범위하게 사용됩니다). 여기에 다른 쇼 및 인쇄 방법을 어떻게 정의해야합니까?
S3의 'show'메소드를 정의하고 싶을 때 간단하게 할 수 있지만, S4 show 메소드를 삭제하지 않고 그 일을 할 수있는 방법을 찾지 못했습니다. – Andrie
@ 앤드류 : 그것은 까다 롭습니다. 안 그래요? –
Show는 S4 인쇄와 같습니다. 왜 각기 다른 결과가 필요한지 확신 할 수 없습니다. – hadley