En R chaque "objet" a un mode
et class
. Le premier représente la façon dont un objet est stocké dans la mémoire (numérique, le caractère, la liste et la fonction) tandis que le plus tard représente son type abstrait. Par exemple:
d <- data.frame(V1=c(1,2))
class(d)
# [1] "data.frame"
mode(d)
# [1] "list"
typeof(d)
# list
Comme vous pouvez le voir les trames de données sont stockées dans la mémoire en tant que list
mais ils sont emballés en data.frame
objets. Ce dernier permet l'utilisation de fonctions de membre ainsi que la surcharge des fonctions telles que print
avec un comportement personnalisé.
typeof
donne généralement à la même information que mode
(storage.mode
), mais pas toujours. Affaire au point:
typeof(c(1,2))
# [1] "double"
mode(c(1,2))
# [1] "numeric"
Le raisonnement derrière cela peut être trouvé ici:
La R spécifique de la fonction typeof renvoie le type d'un objet R
Fonction mode donne des informations sur le mode d'un objet dans le sens de Becker, Chambers & Wilks (1988), et n'est plus compatible avec d'autres implémentations du langage S
Le lien que j'ai posté ci-dessus contient également une liste de toutes les R basic types
(vecteurs, listes, etc.) et tous compound objects
(facteurs et des données.les images) ainsi que quelques exemples de la façon dont mode
, typeof
et class
sont liés à chaque type.