首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >遍历向量的向量

遍历向量的向量
EN

Stack Overflow用户
提问于 2012-09-20 06:42:33
回答 2查看 20.3K关注 0票数 16

当我遍历向量的向量时,每个循环的结果是几个向量。我希望每个循环的结果都是一个向量。请参考以下示例:

代码语言:javascript
复制
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)的情况下,我预计会有三个向量迭代三次。类似于:

代码语言:javascript
复制
# [1]  1  2  3  4  5
# [1]  6  7  8  9 10
# [1] 11 12 13 14 15

谁能解释一下为什么我会得到这个结果(15个向量),以及如何实现我想要的结果(3个向量)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-20 06:46:46

看看vects是什么:

代码语言:javascript
复制
> vects
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15

c()连接(在本例中)这三个向量,将它们连接成一个向量。在for()循环中,v依次接受vects中的每个值并打印它,因此您会看到结果。

你想要三个不同向量的列表吗?如果是这样

代码语言:javascript
复制
> 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

换句话说,形成一个向量列表,而不是向量的组合。

票数 20
EN

Stack Overflow用户

发布于 2012-09-20 06:46:18

vects <- list(foo,bar,baz)代替vects <- c(foo,bar,baz)

(实际上)并不存在向量的向量。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12503901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档