[英]Loop through a vector of vectors
當我遍歷向量的向量時,每個循環的結果是幾個向量。 我希望每個循環的結果都是一個向量。 請參見以下示例:
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(foo,bar,baz)
,我期望給定三個向量(應該)重復三次。 就像是:
# [1] 1 2 3 4 5
# [1] 6 7 8 9 10
# [1] 11 12 13 14 15
誰能解釋為什么我得到這個結果(15個向量)以及如何獲得我想要的結果(3個向量)?
看看什么是vects
:
> vects
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
c()
在這種情況下將三個向量聯接在一起,將它們串聯為一個向量。 在for()
循環中, v
依次接受vects
中的每個值並將其打印出來,因此可以看到結果。
您是否需要三個獨立向量的列表? 如果是這樣的話
> vects2 <- list(foo, bar, baz)
> for(v in vects2) {print(v)}
[1] 1 2 3 4 5
[1] 6 7 8 9 10
[1] 11 12 13 14 15
換句話說,形成向量列表,而不是向量的組合。
將vects <- list(foo,bar,baz)
vects <- c(foo,bar,baz)
為vects <- c(foo,bar,baz)
。
(真的)沒有向量載體。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.