Boucle à travers un vecteur de vecteurs
Quand je boucle par le biais d'un vecteur de vecteurs, le résultat de chaque boucle est plusieurs vecteurs. Je voudrais attendre le résultat de chaque boucle d'un vecteur. Veuillez voir l'exemple suivant:
> 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
C'est étrange comme je m'attends trois vecteurs étant donné qu'il (devrait) itérer trois fois étant donné le vecteur c(foo,bar,baz). Quelque chose comme:
[1] 1 2 3 4 5
[1] 6 7 8 9 10
[1] 11 12 13 14 15
Quelqu'un peut-il expliquer pourquoi j'obtiens ce résultat (15 vecteurs) et la façon d'atteindre le résultat que je cherche (3 vecteurs)?
source d'informationauteur user1515534
Vous devez vous connecter pour publier un commentaire.
Regarder ce
vects
est:La
c()
jointures (dans ce cas) les trois vecteurs, de concaténer en un seul vecteur. Dans lefor()
boucle,v
prend des valeurs dansvects
à son tour et l'imprime, d'où le résultat que vous voyez.Ne voulez-vous une liste de trois vecteurs distincts? Si oui
En d'autres termes, la forme d'une liste de vecteurs, et non un ensemble de vecteurs.
Substitut
vects <- list(foo,bar,baz)
pourvects <- c(foo,bar,baz)
.Il n'y a pas une telle chose (vraiment) comme un vecteur de vecteurs.