创建包含while循环的每个步骤的列表

问题描述 投票:0回答:1

我运行了while循环,该循环执行一些预测模型。我的问题是在每个步骤中使用while循环都会覆盖模型,而仅保留最后一次迭代的结果。但我想将每个步骤的模型保留在列表中。

这里是一个简单的例子。

i <- 0
while(i < 5) {
 i <- i + 1
 my_model <- i
}

[这里,my_model仅包含最后一步的i

my_model
5

如何创建包含每个步骤的my_model对象的列表?所以我的预期输出是:

my_model_list <- list(1, 2, 3, 4, 5)

我需要像上面的一样通过while循环实现此预期输出。到目前为止,我只想出要在每个步骤中使用assign创建对象。但我希望有更好的解决方案。

r list while-loop
1个回答
0
投票

初始化一个空列表,然后将每个输出放入其中。

my_model = list()
i <- 0
while(i < 5) {
  i <- i + 1
  my_model[i] <- i
}

给出:

> my_model
[[1]]
[1] 1

[[2]]
[1] 2

[[3]]
[1] 3

[[4]]
[1] 4

[[5]]
[1] 5

0
投票

怎么样:

my_model <- list()
i <- 0
while(i < 5) {
  i <- i + 1
  my_model[i] <- lm(mpg ~ cyl, data = mtcars)
}
© www.soinside.com 2019 - 2024. All rights reserved.