簡體   English   中英

循環通過向量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM