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 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

Schreibe einen Kommentar