Identifizieren Sie R-Objekteigenschaften
- Identifizieren Sie R-Objekteigenschaften
-
str()
Funktion -
typeof()
Funktion -
class()
Funktion -
is.___()
Funktionen -
attributes()
Funktion - Andere Funktionen
Bei unserer Datenanalyse können wir auf eine Situation stoßen, in der eine von uns verwendete Funktion oder ein Operator bei einigen Objekten funktioniert, bei anderen jedoch nicht. Dies geschieht, weil die Funktion/der Operator nur auf Objekte eines bestimmten Typs wirkt.
Beispielsweise funktioniert der Operator $
mit einer Liste, aber nicht mit einem atomaren Vektor.
Beispielcode:
# A list.
l = list(one="First", two="Last")
# A vector.
v = c(one="First", two="Last")
l$one # Works.
v$one# Error.
Ausgang:
> l$one # Works.
[1] "First"
> v$one# Error.
Error in v$one : $ operator is invalid for atomic vectors
Identifizieren Sie R-Objekteigenschaften
Dieser Artikel befasst sich mit Funktionen, die uns helfen, verschiedene Eigenschaften der Objekte zu identifizieren, mit denen wir arbeiten.
Dieser Artikel enthält nur eine kurze Beschreibung und ein Beispiel für jede Funktion. Die Dokumentation von R für diese Funktionen enthält weitere Details und Beispiele.
Zuerst werden wir einige R-Objekte erstellen.
Beispielcode:
# Vector of numbers.
vn = c(4, 5, 6, 7)
# Vector of Booleans. (A vector of True False values)
vb <- vn%%2 == 0
# Data frame.
dfr = data.frame(Col1=vn, Col2=vb)
str()
Funktion
Die Funktion str()
zeigt die interne Struktur des Objekts an. Es funktioniert auf jedem R-Objekt.
Beispielcode:
str(vn)
str(vb)
str(dfr)
Ausgang:
> str(vn)
num [1:4] 4 5 6 7
> str(vb)
logi [1:4] TRUE FALSE TRUE FALSE
> str(dfr)
'data.frame': 4 obs. of 2 variables:
$ Col1: num 4 5 6 7
$ Col2: logi TRUE FALSE TRUE FALSE
typeof()
Funktion
Die Funktion typeof()
zeigt den Typ oder Speichermodus eines beliebigen R-Objekts an.
Beispielcode:
typeof(vn)
typeof(vb)
typeof(dfr)
Ausgang:
> typeof(vn)
[1] "double"
> typeof(vb)
[1] "logical"
> typeof(dfr)
[1] "list"
class()
Funktion
Die Funktion class()
zeigt das Attribut class
des R-Objekts an. Es listet die Namen der Klassen auf, von denen dieses Objekt erbt.
Sogar Objekte, die kein Klassenattribut haben, haben eine implizite Klasse.
Beispielcode:
class(vb)
class(dfr)
# Create a matrix and check its class.
m = matrix(c(1:6), nrow=3)
class(m)
Ausgang:
> class(vb)
[1] "logical"
> class(dfr)
[1] "data.frame"
> class(m)
[1] "matrix" "array"
is.___()
Funktionen
R hat viele eingebaute is.___()
-Funktionen. Diese Funktionen geben boolesche Werte zurück, die angeben, ob das Objekt von diesem Typ ist.
Beispielsweise können wir überprüfen, ob ein bestimmtes Objekt ein Vektor, eine Liste, eine Matrix, ein Array, ein Datenrahmen usw. ist. Im folgenden Code sehen wir das Ergebnis der Überprüfung eines bestimmten Objekts mit verschiedenen is.___()
Funktionen.
Beispielcode:
# We will check whether the object vb we created is of any of the following types of object.
is.list(vb)
is.vector(vb)
is.atomic(vb)
is.numeric(vb)
is.matrix(vb)
is.data.frame(vb)
is.array(vb)
Ausgang:
> is.list(vb)
[1] FALSE
> is.vector(vb)
[1] TRUE
> is.atomic(vb)
[1] TRUE
> is.numeric(vb)
[1] FALSE
> is.matrix(vb)
[1] FALSE
> is.data.frame(vb)
[1] FALSE
> is.array(vb)
[1] FALSE
attributes()
Funktion
Die Funktion attributes()
zeigt eine Liste der Attribute eines Objekts an.
Beispielcode:
# For the list object.
attributes(l)
# For the data frame object.
attributes(dfr)
# For the matrix object.
attributes(m)
Ausgang:
> # For the list object.
> attributes(l)
$names
[1] "a" "z"
> # For the data frame object.
> attributes(dfr)
$names
[1] "Col1" "Col2"
$class
[1] "data.frame"
$row.names
[1] 1 2 3 4
> # For the matrix object.
> attributes(m)
$dim
[1] 3 2
Andere Funktionen
Neben den oben beschriebenen Funktionen hat R noch weitere Funktionen, die uns mehr Informationen über ein Objekt geben. Einige von ihnen sind spezifisch für Objekte bestimmter Typen.
Einige der häufiger verwendeten Funktionen sind:
dim()
: Zeigt die Abmessungen eines Objekts an.names()
: Zeigt die Namen der Komponenten eines Objekts an.summary()
: Zeigt bei statistischen Modellen eine Zusammenfassung des Modells an.colnames()
,rownames()
undrow.names()
: zeigt die Spalten-/Zeilennamen für matrixartige Objekte an. Für einen Datenrahmen ruftrownames()
row.names()
auf undcolnames()
ruftnames()
auf.