Sök…


Introduktion

Denna dokumentationssida beskriver de fyra objektsystemen i R och deras likheter och skillnader på hög nivå. Mer detaljerad information om varje enskilt system finns på sin egen ämnesida.

De fyra systemen är: S3, S4, referensklasser och S6.

S3

S3-objektsystemet är ett mycket enkelt OO-system i R.

Varje objekt har en S3-klass. Det kan få (fick?) Med funktionen class .

> class(3)
[1] "numeric"

Det kan också ställas in med funktionen class :

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

Det kan också ställas in med funktionen attr :

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

Ett objekt kan ha många klasser:

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

När man använder en generisk funktion använder R det första elementet i klassen som har en tillgänglig generisk.

Till exempel:

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

Men om vi nu definierar en 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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow