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