R Language
Objektorientierte Programmierung in R
Suche…
Einführung
Diese Dokumentationsseite beschreibt die vier Objektsysteme in R und deren Gemeinsamkeiten und Unterschiede. Ausführlichere Informationen zu jedem einzelnen System finden Sie auf einer eigenen Themenseite.
Die vier Systeme sind: S3, S4, Referenzklassen und S6.
S3
Das S3-Objektsystem ist ein sehr einfaches OO-System in R.
Jedes Objekt hat eine S3-Klasse. Es kann mit der Funktionsklasse class
.
> class(3)
[1] "numeric"
Es kann auch mit der Funktion eingestellt wird class
:
> bicycle <- 2
> class(bicycle) <- 'vehicle'
> class(bicycle)
[1] "vehicle"
Es kann auch mit der Funktion attr
:
> velocipede <- 2
> attr(velocipede, 'class') <- 'vehicle'
> class(velocipede)
[1] "vehicle"
Ein Objekt kann viele Klassen haben:
> class(x = bicycle) <- c('human-powered vehicle', class(x = bicycle))
> class(x = bicycle)
[1] "human-powered vehicle" "vehicle"
Bei Verwendung einer generischen Funktion verwendet R das erste Element der Klasse, für das ein generisches Element verfügbar ist.
Zum Beispiel:
> summary.vehicle <- function(object, ...) {
+ message('this is a vehicle')
+ }
> summary(object = my_bike)
this is a vehicle
Aber wenn wir jetzt eine summary.bicycle
definieren, 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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow