Schleife über einen Vektor von Vektoren
Wenn ich eine Schleife durch einen Vektor von Vektoren, das Ergebnis jeder Schleife mehrere Vektoren. Ich würde erwarten, dass das Ergebnis jeder Schleife ein Vektor. Beachten Sie das folgende Beispiel:
foo <- seq(from=1, to=5, by=1)
bar <- seq(from=6, to=10, by=1)
baz <- seq(from=11, to=15, by=1)
vects <- c(foo,bar,baz)
for(v in vects) {print(v)}
# [1] 1
# [1] 2
# [1] 3
# [1] 4
# [1] 5
# [1] 6
# [1] 7
# [1] 8
# [1] 9
# [1] 10
# [1] 11
# [1] 12
# [1] 13
# [1] 14
# [1] 15
Dies ist merkwürdig, da würde ich erwarten, dass drei Vektoren gegeben, es (sollte) iterieren dreimal gegeben den Vektor c(foo,bar,baz)
. So etwas wie:
# [1] 1 2 3 4 5
# [1] 6 7 8 9 10
# [1] 11 12 13 14 15
Kann mir jemand erklären, warum erhalte ich dieses Ergebnis (15-Vektoren) und wie Sie das Ergebnis erreichen, ich bin auf der Suche nach (3 Vektoren)?
Es gibt keine solche Sache als ein Vektor von Vektoren in R. Die Funktion
ja es ist ein Vektor von Vektoren. Eine Liste ist das generic Vektor in R, und es können Vektoren enthalten. Wir nennen Ihnen die Listen aber so weit wie R ist besorgt, es ist ein Vektor. (Im Vergleich zu einem atomaren Vektor der hält nur einen Datentyp, eine Liste ist ein Vektor, dessen Elemente halten kann einen beliebigen Datentyp.)
Ich Frage mich, warum das downvoted? Was ist falsch? Die Frage ist klar und reproduzierbar, und enthält erwartete Ausgabe. Ich bin an einem Verlust zu wissen, warum dieser Q-Wert war ein downvote, vor allem ohne einen Kommentar zu sagen, warum?!
c
einfach verkettet die drei Vektoren geben Sie es in einen langen Vektor.ja es ist ein Vektor von Vektoren. Eine Liste ist das generic Vektor in R, und es können Vektoren enthalten. Wir nennen Ihnen die Listen aber so weit wie R ist besorgt, es ist ein Vektor. (Im Vergleich zu einem atomaren Vektor der hält nur einen Datentyp, eine Liste ist ein Vektor, dessen Elemente halten kann einen beliebigen Datentyp.)
Ich Frage mich, warum das downvoted? Was ist falsch? Die Frage ist klar und reproduzierbar, und enthält erwartete Ausgabe. Ich bin an einem Verlust zu wissen, warum dieser Q-Wert war ein downvote, vor allem ohne einen Kommentar zu sagen, warum?!
InformationsquelleAutor user1515534 | 2012-09-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schauen, was
vects
ist:Den
c()
verbindet (in diesem Fall) die drei Vektoren, verketten Sie in einen einzigen Vektor. In derfor()
Schleifev
nimmt auf die einzelnen Werte invects
wiederum und druckt es, also das Ergebnis, das Sie sehen.Wollten Sie eine Liste der drei separaten Vektoren? Wenn dem so ist
In anderen Worten, bilden eine Liste der Vektoren, nicht eine Kombination der Vektoren.
InformationsquelleAutor Gavin Simpson
Ersatz
vects <- list(foo,bar,baz)
fürvects <- c(foo,bar,baz)
.Gibt es keine solche Sache (wirklich) als ein Vektor von Vektoren.
Seufz. Richtig, wie üblich, King, Gavin! 🙂
+1 sowieso, und vor allem für mich ruft der König. Ich Regel! 🙂
InformationsquelleAutor joran