Identification de l’object R

Je me retrouve souvent avec une fonction produisant une sortie pour laquelle je ne comprends pas le type de données de sortie. Je m’attends à une liste et cela finit par être une liste de listes ou un bloc de données ou quelque chose d’autre. Quelle est la bonne méthode ou le bon workflow pour déterminer le type de données de sortie lors de la première utilisation d’une fonction?

Je commence habituellement par une combinaison de:

typeof(obj) class(obj) sapply(obj, class) sapply(obj, atsortingbutes) atsortingbutes(obj) names(obj) 

selon le cas, basé sur ce qui est révélé. Par exemple, essayez avec:

 obj <- data.frame(a=1:26, b=letters) obj <- list(a=1:26, b=letters, c=list(d=1:26, e=letters)) data(cars) obj <- lm(dist ~ speed, data=cars) 

..etc.

Si obj est un object S3 ou S4, vous pouvez également essayer des methods ou showMethods , showClass , etc. R Inferno de Pasortingck Burns a une assez bonne section à ce sujet (sec. 7).

EDT : Dirk et Hadley mentionnent str(obj) dans leurs réponses. C'est vraiment mieux que tout ce qui précède pour un aperçu rapide et même détaillé d'un object.

 str(x) 

C’est tout ce dont vous devez vous souvenir dans 99% des cas.

Si je reçois un object, dites via

 someObject <- myMagicFunction(...) 

alors je procède habituellement par

 class(someObject) str(someObject) 

qui peut être suivi par head (), summary (), print (), ... selon la classe que vous avez.

 atsortingbutes(someObject) 

Peut aussi être utile