R-Objektidentifikation

Ich befinde mich oft mit einer Funktion, die Ausgabe erzeugt, für die ich den Ausgabedatentyp nicht verstehe. Ich erwarte eine Liste und es endet eine Liste von Listen oder ein Datenrahmen oder etwas anderes. Was ist eine gute Methode oder ein guter Workflow, um den Ausgabedatentyp zu finden, wenn Sie eine Funktion zum ersten Mal verwenden?

Antwort auf "R-Objektidentifikation " 4 von antworten

Wenn ich 'someObject', sagen wir über

someObject <- myMagicFunction(...)

bekomme, dann gehe ich in der Regel mit

class(someObject)
str(someObject)

weiter, dem head(), summary(), print(), ... folgen kann. abhängig von der Klasse, die Sie haben.

attributes(someObject) 

Kann auch nützlich sein

Ich beginne in der Regel mit einer Kombination von:

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

je nach dem, was enthüllt wird. Probieren Sie es beispielsweise mit:

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.

Wenn obj is an S3 or S4 object, you can also try ein S3- oder S4-Objekt ist, können Sie auch methods or oder showMethods, , showClass, etc. Patrick Burns' usw. ausprobieren. Patrick Burns' R Inferno has a pretty good section on this (sec #7). hat einen ziemlich guten Abschnitt auf diesem (Sek. #7).

EDIT : Dirk und Hadley erwähnen str(obj) in their answers. It really is much better than any of the above for a quick and even detailed peek into an object. in ihren Antworten. Es ist wirklich viel besser als jeder der oben genannten für einen schnellen und sogar detaillierten Blick in ein Objekt.

str(x)

Es ist alles, was Sie für 99% der Fälle zu erinnern brauchen.