use*_*534 13 loops for-loop r vector
当我遍历向量向量时,每个循环的结果是几个向量.我希望每个循环的结果都是一个向量.请参阅以下示例:
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
Run Code Online (Sandbox Code Playgroud)
这是奇怪的,因为我预计给定它的三个向量(应该)给定向量迭代三次,c(foo,bar,baz).就像是:
# [1] 1 2 3 4 5
# [1] 6 7 8 9 10
# [1] 11 12 13 14 15
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释为什么我得到这个结果(15个向量)以及如何实现我正在寻找的结果(3个向量)?
Rei*_*son 15
看看是什么vects:
> vects
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Run Code Online (Sandbox Code Playgroud)
的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
Run Code Online (Sandbox Code Playgroud)
换句话说,形成向量列表,而不是向量的组合.