首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用for循环在R中一次填充两行数组?

如何使用for循环在R中一次填充两行数组?
EN

Stack Overflow用户
提问于 2017-08-06 04:26:52
回答 1查看 68关注 0票数 0

我想用x的数据按照一定的顺序来填充test:

代码语言:javascript
复制
x = matrix(rnorm(330),165,2)


origins = 130:157

horizon = 8

col = 1:2

test = array(0, c(length(origins)*length(col), horizon))

for( origin in origins){

  for (c in col){

    test[which(origin==origins), ] = x[(origin+1):(origin+8), c] 

  }

}

但是,此代码仅帮助提取x的第二列,以填充测试的前28行。下图只是完整测试表的一部分,显示了从第29行到第56行的无效填充。enter image description here

有谁能帮我把它们完整地填好吗?非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2017-08-06 09:25:04

这是一个可能的解决方案,但仍然不清楚您想要的结果是什么。最好制作更小的数据并显示所需的结果。

在原始代码中,赋值的左侧不随c变化,因此每次通过C的循环时,测试的相同行将被重写,

代码语言:javascript
复制
x = matrix(rnorm(330),165,2)

origins = 130:157
horizon = 8
col = 1:2

test = array(0, c(length(origins)*length(col), horizon))

for( origin in origins){

  for (c in col){

    # the left hand side must vary somehow with c as well.
    test[(which(origin==origins)-1) + (c - 1) * length(origins) + 1, ] = x[(origin+1):(origin+8), c] 

  }

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

https://stackoverflow.com/questions/45526112

复制
相关文章

相似问题

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