Je finis souvent avec une fonction produisant une sortie pour laquelle je ne comprends pas le type de données de sortie. J'attends une liste et elle finit par être une liste de listes ou un cadre de données ou autre chose. Quelle est une bonne méthode ou un bon workflow pour déterminer le type de données de sortie lors de la première utilisation d'une fonction?Identification d'objet R
Répondre
Je commence habituellement avec une combinaison de:
typeof(obj)
class(obj)
sapply(obj, class)
sapply(obj, attributes)
attributes(obj)
names(obj)
selon le cas en fonction de 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 S3 ou S4 objet, vous pouvez aussi essayer methods
ou showMethods
, showClass
, etc. Patrick Burns R Inferno a une section assez bonne sur ce (s # 7).
EDIT: Dirk et Hadley mentionnent str(obj)
dans leurs réponses. C'est vraiment beaucoup mieux que tout ce qui précède pour un coup d'oeil rapide et même détaillé dans un objet.
Si je reçois 'someObject', disent par
someObject <- myMagicFunction(...)
puis je procède habituellement par
class(someObject)
str(someObject)
qui peut être suivie par la tête(), résumé(), impression(),. .. selon la classe que vous avez.
Juste essayé str (obj). Bien plus que ce que j'attendais d'une représentation sous forme de chaîne; très propre! Merci. – ars
attributes(someObject)
peut également être utile
str(x)
C'est tout ce dont vous avez besoin de vous souvenir dans 99% des cas.
son parfait. merci beaucoup – ManojGumber
'' str (x, max.level = 1) '' peut être utile si x est un ggplot multicouche! – PatrickT
str (UCTURE) difficile à retenir, parce que je continue à penser "chaîne" mais oh, si utile. Il suffit de dire STRUCTURE dix fois. – Dmitri
- 1. Identification de hauteur sous Linux
- 2. Identification d'une carte dans groovy
- 3. Accrocher R depuis Excel - DCOM? R ajouter pour Excel?
- 4. Identification des tests à exécution lente
- 5. iPhone: Suivi/Identification des touches individuelles
- 6. Identification du navigateur côté serveur en php
- 7. Identification d'emplacements géographiques dans le texte
- 8. Identification d'IIS 7 à l'aide de NSIS
- 9. Identification des références de service Web ASP.NET
- 10. Identification des fichiers pour un correctif/correctif
- 11. Identification du contenu principal d'une page
- 12. Identification d'un bouton dans un ListBox modèle
- 13. Identification par ordinateur unique @ Java Applet
- 14. Identification des espaces blancs en C++
- 15. Identification des blocs identiques du code
- 16. identification par programme du périphérique iPhone
- 17. Variables statiques dans R
- 18. R application web introduction
- 19. Séries temporelles en R
- 20. Fonctions d'ajustement dans R
- 21. Appel de Clojure de R?
- 22. R: Occurrence -> séquence binaire?
- 23. Fonctions de ligne dans R
- 24. Comment définir alpha dans R?
- 25. Connexion GNU R à PostgreSQL
- 26. Filtrage des données dans R
- 27. Equivalent de "throw" dans R
- 28. Identification du client au cours d'une .NET Remoting invocation
- 29. Flex Bulder 3 Version Pro ou Non Identification
- 30. Identification des problèmes de mémoire dans une application ASP.NET
Je ne pense pas que je l'ai fait aussi loin à travers R Inferno. Merci de m'avoir renvoyé là-bas. –
Dans le cas où vous ne l'avez pas déjà vu, "S4 objets en 15 pages ou moins" [http://www.stat.auckland.ac.nz/S-Workshop/Gentleman/S4Objects.pdf] est une autre bonne lecture (avec plus de détails). – ars
Je n'avais pas vu ça. Merci pour le lien. Cela valait le prix d'admission. :) –