如何将模型结果保存在for循环的列表中
how to save the model result in a list in for loop
我运行一个结果有8个子结果的NLP模型。所以基本上,模型 m 有一些 sub_model 特征,我可以像 m$phi 一样访问它们。如下图:
我想做的是将这些结果保存在一个列表中并在以后使用。这就是我处理它的方式:
model <- c()
for (i in c(3:10)){
m <- FitLdaModel(dtm,k = i,
iterations = 200,
burnin = 175)
model <- append(model,m)
i <- i+1
}
这种方法在某种程度上是有效的,但我将得到 72 个值,而不是保存在空列表中的 8 个值 。基本上,所有模型和子模型都保存在列表中,但我想要的是类似于 嵌套列表 的东西,其中第一个元素中有 sub_model 个模型,第二个元素中模型二的子模型,...所以我想要一个这样的列表:
final_list <- [[模型 m1 和所有 sub_model], [模型 m2 和所有 sub_model],...]
有什么办法吗?
您可以先尝试初始化一个列表。
inds <- 3:10
model <- vector('list', length(inds))
for (i in seq_along(inds)) {
model[[i]] <- FitLdaModel(dtm,k = inds[i],
iterations = 200,
burnin = 175)
}
我认为使用 lapply
可能更简单 :
model <- lapply(inds, function(i) FitLdaModel(dtm,k = i,iterations = 200, burnin = 175))
我运行一个结果有8个子结果的NLP模型。所以基本上,模型 m 有一些 sub_model 特征,我可以像 m$phi 一样访问它们。如下图:
我想做的是将这些结果保存在一个列表中并在以后使用。这就是我处理它的方式:
model <- c()
for (i in c(3:10)){
m <- FitLdaModel(dtm,k = i,
iterations = 200,
burnin = 175)
model <- append(model,m)
i <- i+1
}
这种方法在某种程度上是有效的,但我将得到 72 个值,而不是保存在空列表中的 8 个值 。基本上,所有模型和子模型都保存在列表中,但我想要的是类似于 嵌套列表 的东西,其中第一个元素中有 sub_model 个模型,第二个元素中模型二的子模型,...所以我想要一个这样的列表:
final_list <- [[模型 m1 和所有 sub_model], [模型 m2 和所有 sub_model],...]
有什么办法吗?
您可以先尝试初始化一个列表。
inds <- 3:10
model <- vector('list', length(inds))
for (i in seq_along(inds)) {
model[[i]] <- FitLdaModel(dtm,k = inds[i],
iterations = 200,
burnin = 175)
}
我认为使用 lapply
可能更简单 :
model <- lapply(inds, function(i) FitLdaModel(dtm,k = i,iterations = 200, burnin = 175))