수색…


소개

이 문서 페이지는 R의 4 가지 객체 시스템과 상위 수준의 유사점과 차이점을 설명합니다. 각 개별 시스템에 대한 자세한 내용은 자체 주제 페이지에서 확인할 수 있습니다.

네 가지 시스템은 S3, S4, Reference Classes 및 S6입니다.

S3

S3 오브젝트 시스템은 R에서 매우 간단한 OO 시스템입니다.

모든 객체에는 S3 클래스가 있습니다. 함수 class 로 get (got?) 할 수 있습니다.

> class(3)
[1] "numeric"

함수 class 로 설정할 수도 있습니다.

> bicycle <- 2
> class(bicycle) <- 'vehicle'
> class(bicycle)
[1] "vehicle"

attr 함수를 사용하여 설정할 수도 있습니다.

> velocipede <- 2
> attr(velocipede, 'class') <- 'vehicle'
> class(velocipede)
[1] "vehicle"

객체에는 여러 클래스가있을 수 있습니다.

> class(x = bicycle) <- c('human-powered vehicle', class(x = bicycle))
> class(x = bicycle)
[1] "human-powered vehicle" "vehicle" 

일반 함수를 사용할 때 R은 사용 가능한 제네릭이있는 클래스의 첫 번째 요소를 사용합니다.

예 :

> summary.vehicle <- function(object, ...) {
+   message('this is a vehicle')
+ }
> summary(object = my_bike)
this is a vehicle

그러나 이제 summary.bicycle 정의하면 다음과 같습니다.

> summary.bicycle <- function(object, ...) {
+   message('this is a bicycle')
+ }
> summary(object = my_bike)
this is a bicycle


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow