R Language
Programación Orientada a Objetos en R
Buscar..
Introducción
Esta página de documentación describe los cuatro sistemas de objetos en R y sus similitudes y diferencias de alto nivel. Se pueden encontrar mayores detalles sobre cada sistema individual en su propia página de temas.
Los cuatro sistemas son: S3, S4, clases de referencia y S6.
S3
El sistema de objetos S3 es un sistema OO muy simple en R.
Cada objeto tiene una clase S3. Puede ser obtenido (conseguido?) Con la class
función.
> class(3)
[1] "numeric"
También se puede configurar con la class
función:
> bicycle <- 2
> class(bicycle) <- 'vehicle'
> class(bicycle)
[1] "vehicle"
También se puede configurar con la función attr
:
> velocipede <- 2
> attr(velocipede, 'class') <- 'vehicle'
> class(velocipede)
[1] "vehicle"
Un objeto puede tener muchas clases:
> class(x = bicycle) <- c('human-powered vehicle', class(x = bicycle))
> class(x = bicycle)
[1] "human-powered vehicle" "vehicle"
Cuando se usa una función genérica, R usa el primer elemento de la clase que tiene un genérico disponible.
Por ejemplo:
> summary.vehicle <- function(object, ...) {
+ message('this is a vehicle')
+ }
> summary(object = my_bike)
this is a vehicle
Pero si ahora definimos un 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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow