85 votes

R: les Types et les catégories de variables

R deux questions:

  1. Quelle est la différence entre le type retourné par typeof) et la classe (retourné par class) d'une variable? Est la différence semblable à celle, par exemple, en langage C++?
  2. Quels sont les types et les catégories de variables?

96voto

diliop Points 3208

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.

6voto

Dirk Eddelbuettel Points 134700

type vraiment se réfère aux différentes structures de données disponibles dans R. Cette discussion dans le Langage R manuel de Définition peut vous obtenir a commencé sur les objets et les types.

D'autre part, class signifie quelque chose d'autre dans la R que ce que vous pouvez attendre. À partir de le R de Définition de Langue (manuel fourni avec votre version de R):

2.2.4 les Classes

R est un complexe de classe de system1, principalement contrôlée par la classe attribut. Cet attribut est une caractère de vecteur contenant la liste de classe à un objet hérite partir de. C'est ce qui forme la base de la "méthodes génériques de" fonctionnalité dans R.

Cet attribut peut être consulté et manipulé pratiquement sans restriction par les utilisateurs. Il n'y a pas de vérifier qu'un objet en fait contient les composants de la classe les méthodes d'attendre. Ainsi, en modifiant la attribut de classe doit être fait avec attention, et quand ils sont disponibles spécifique de la création et de la coercition les fonctions doivent être privilégiées.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X