기본 출력 요소를 정의하고 숨겨진 나머지 요소를 유지하는 옵션이 있으면 R의 S3 클래스에 대해 궁금해했습니다. 우리가S3 클래스의 기본 요소
res <- toy(c(1:10))
res
를 통해 이제 결과를 액세스 할 때
toy <- function(x){
resA <- mean(x)
resB <- length(x)
output <- list(resA=resA, resB=resB, x=x)
class(output) <- "toy"
output
}
우리가 얻을 : 예를 들어, 우리가 어떤 일을 계산하고이처럼 S3 클래스로 다시보고 장난감 기능을 가지고 말할 수 예상대로 전체 목록을 결과로 출력합니다. 우리가 S3 인쇄 방법을 또한 다음
`print.toy` <- function(x){
print(x$resA)
}
를 정의한다면 우리는 (이 경우 resB
및 x
에) 불필요한 정보를 숨기고 사용자는 resA
보고 인쇄 표준 출력을 제공 할 수 있습니다. 그러나 이것은 클래스 toy
의 객체에 대해 더 많은 계산을 적용하려는 경우 약간의 혼란을 야기 할 수 있습니다.
res <- toy(c(1:10))
res
# Produces an error
res + 1
# Accesses the correct variable of class toy:
res$resA + 1
내 질문은 res + 1
전화뿐만 아니라 작동 할 수 있도록 어떤 변수가 지정되지 않은 경우주의해야 S3 클래스의 표준 값으로 목록 항목 resA
을 정의 할 수있는 방법이있다, 지금 ?
감사합니다. @Ari 언급으로
나는 이것을 위해'+'를 오버로드 할 필요가 있다고 생각한다. –