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