Mezclando objetos
Existen ocasiones en las que nos encontramos diferentes clases de objetos R mezclados. Algunas veces esto sucede por accidente pero también puede darse el caso de que haya sido intencionadamente. Obsérvese detenidamente el siguiente código:
> y <- c(1.7, "a") ## character
> y
[1] "1.7" "a"
> class(y)
[1] "character"
> y <- c(TRUE, 2) ## numeric
> print(y)
[1] 1 2
> class(y)
[1] "numeric"
> y <- c("a", TRUE) ## Character
> print(y)
[1] "a" "TRUE"
> class(y)
[1] "character"
En todos los casos anteriores hemos mezclados objetos de diferentes clases en un vector. No obstante, recordemos que la única regla en los vectores es que no podemos mezclas objetos de diferentes clases. Cuando esto sucede, se pone en marcha la coercio para que cada elemento del vector seán de la misma clase.
En el ejemplo presentado hemos visto el efecto conocido como coercion implícita. Con este mecanismo R intenta encontrar un manera de representar todos los objetos de una forma razonable.