Zoeken…


Invoering

Deze documentatiepagina beschrijft de vier objectsystemen in R en hun overeenkomsten en verschillen op hoog niveau. Meer details over elk afzonderlijk systeem zijn te vinden op de eigen onderwerppagina.

De vier systemen zijn: S3, S4, Reference Classes en S6.

S3

Het S3-objectsysteem is een heel eenvoudig OO-systeem in R.

Elk object heeft een S3-klasse. Het kan krijgen (heb?) Met de functie class .

> class(3)
[1] "numeric"

Het kan ook worden ingesteld met de functie class :

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

Het kan ook worden ingesteld met de functie attr :

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

Een object kan veel klassen hebben:

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

Wanneer een generieke functie wordt gebruikt, gebruikt R het eerste element van de klasse dat een beschikbare generieke heeft.

Bijvoorbeeld:

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

Maar als we nu een summary.bicycle definiëren. 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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow