【发布时间】:2015-11-07 01:01:58
【问题描述】:
我正在尝试在 R 中运行一个 for 循环,它将结果存储在一个列表中。我无法将数据存储在矩阵中,因为我的输出长度不同。例如,以下代码生成一个列表,其中除最后一部分之外的所有条目都为“NULL”。
for(i in 1:n) {
time <- list()
time[[i]] <- (sample(1:96, wb[i], replace=T, prob=weekday[,1]))
print(time)
}
但是,如果我这样做,结果是我想要的,但它没有存储,所以我以后不能使用它。
for(i in 1:n) {
print(sample(1:96, wb[i], replace=T, prob=weekday[,1]))
}
任何帮助将不胜感激!
【问题讨论】:
-
您每次循环都会重新初始化
time:time <- list()。将其移到循环之外。 (尽管在 R 中,像这样增长的对象会很快变得非常缓慢。) -
遍历你的循环。当 i 为 1 时,您将一个空列表存储到 time 中,然后将一些内容放入第一个元素中。当 i 为 2 时,您将一个空列表(注意这部分)存储到 time 中,然后在第二个位置放置一些东西。第一个位置是什么?
-
我只是在您发布回复时想到了这一点。谢谢!!