En R cada "objeto" tiene un mode
y un class
. El primero representa cómo se almacena un objeto en la memoria (numérico, carácter, lista y función) mientras que el último representa su tipo abstracto. Por ejemplo:
d <- data.frame(V1=c(1,2))
class(d)
# [1] "data.frame"
mode(d)
# [1] "list"
typeof(d)
# list
Como se puede ver tramas de datos se almacenan en la memoria como list
pero están envueltos en data.frame
objetos. Este último permite el uso de funciones miembro así como funciones de sobrecarga como print
con un comportamiento personalizado.
typeof
(storage.mode
) generalmente dará la misma información que mode
pero no siempre. El caso en cuestión:
typeof(c(1,2))
# [1] "double"
mode(c(1,2))
# [1] "numeric"
El razonamiento detrás de esto se puede encontrar here: función específica
El R typeof devuelve el tipo de un objeto R
Función modo de da información sobre el modo de un objeto en el sentido de Becker, Chambers & Wilks (1988), y es más compatible con otras implementaciones del lenguaje S
El enlace que publiqué anteriormente también contiene una lista de todas las R basic types
nativas (vectores, listas, etc.) y todos compound objects
(factores y data.frames) así como algunos ejemplos de cómo mode
, typeof
y class
están relacionados para cada tipo.
Esta publicación relacionada también puede proporcionar información útil: http://stackoverflow.com/questions/8855589/a-comprehensive-survey-of-the-types-of-things-in-r-mode-and-class- y tipo –