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