Zeilennamen & amp; Spaltennamen in R
Tun die folgende Funktion-Paare generieren, die genau die gleichen Ergebnisse?
Paar 1) names()
& colnames()
Pair-2) rownames()
& row.names()
InformationsquelleAutor der Frage Mehper C. Palavuzlar | 2010-02-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Oscar Wilde sagte
R, ist mehr entwickelt, sondern als gestaltete Sprache, so dass diese Dinge passieren.
names()
undcolnames()
Arbeit auf einemdata.frame
abernames()
funktioniert nicht auf einer matrix:InformationsquelleAutor der Antwort Dirk Eddelbuettel
Nur erweitern ein wenig auf Dirk ' s Beispiel:
Hilft es, zu denken, der einen Daten-frame eine Liste mit gleicher Länge von Vektoren. Das ist wahrscheinlich der Grund, warum
names
arbeitet mit einem Daten-frame, nicht aber eine matrix.Andere nützliche Funktion ist
dimnames
die gibt den Namen für jede dimension. Sie werden feststellen, dass dierownames
Funktion eigentlich nur gibt das erste element ausdimnames
.Bezüglich
rownames
undrow.names
: ich kann nicht sagen, der Unterschied, obwohlrownames
verwendetdimnames
währendrow.names
geschrieben wurde außerhalb von R. Sie beide scheinen auch für die Arbeit mit höher-dimensionale arrays:InformationsquelleAutor der Antwort Shane
Ich denke, dass mit
colnames
undrownames
macht am meisten Sinn; hier ist der Grund.Mit
names
hat mehrere Nachteile. Sie haben sich daran zu erinnern, dass es bedeutet, "Spaltennamen", und es funktioniert nur mit Daten-frame, so müssen Sie rufencolnames
immer dann, wenn Sie Matrizen. Durch den Aufrufcolnames
Sie müssen nur daran denken, eine Funktion. Schließlich, wenn man sich den code fürcolnames
Sie werden sehen, dass es Anrufenames
im Falle eines Daten-Frames sowieso, so ist die Ausgabe identisch.rownames
undrow.names
Gegenzug, die gleiche Werte für die Daten-Frames und Matrizen; der einzige Unterschied, den ich entdeckt haben, ist, dass, wo es keine Namen,rownames
drucken "NULL" (wiecolnames
), aberrow.names
gibt es unsichtbar. Da gibt es nicht viel zu wählen zwischen den zwei Funktionenrownames
gewinnt auf dem Gelände der ästhetik, da es paar mehr hübsch mitcolnames
. (Auch, für die faulen Programmierer, speichern Sie ein Zeichen eingeben.)InformationsquelleAutor der Antwort Richie Cotton
Und ein weiterer ausbau:
Wenn Sie zuweisen möchten neue Spalte Namen, die Sie tun können, folgende auf
data.frame
:Wenn Sie, jedoch führen Sie den vorherigen Befehl auf
matrix
werden Sie Durcheinander zu bringen:Seit matrix kann als zwei-dimensionaler Vektor, Sie werden bei der Vergabe nur auf die ersten fünf Werte (die Sie nicht wollen, das zu tun, tun Sie?). In diesem Fall, Sie sollten stick mit
colnames()
.Gibt...
InformationsquelleAutor der Antwort aL3xa