如果我不知道将要循环的循环数并将结果以某种文件格式保存在文件夹中,如何在for循环中创建空白空间来保存输出?
data<-
for(i in 1:9){
for(j in 1:5){
for (b in 1:5){
for (f in 1:(max(data[,'colum']))) {
model.fit<-lm(y~x)
#again I want to pull out the coefficients and all necessessary values and put them somewhere as matrix or anything else..
I also want to add another model and put the results together
}
}
}
}
write.table ()
答案 0 :(得分:1)
如注释中所述,您可以初始化list
和辅助位置变量aux
。对于您的情况,类似于以下内容:
mylist = list()
aux = 1
for(i in 1:9){
for(j in 1:5){
for (b in 1:5){
for (f in 1:(max(data[,'colum']))) {
mylist[[aux]]<-lm(y~x)
aux = aux + 1
}
}
}
}
write.table ()
在每次迭代中,都会将模型添加到您的列表中,并将辅助变量更新一个。
修改
如果您希望在每次迭代中添加两个模型,则可以执行以下操作:
mylist = list()
aux = 1
for(i in 1:9){
for(j in 1:5){
for (b in 1:5){
for (f in 1:(max(data[,'colum']))) {
mylist[[aux]]<-lm(y~x)
aux = aux + 1
mylist[[aux]] <- lm2(y~x)
aux = aux + 1
}
}
}
}
write.table ()
这样,所有奇数数字将具有model.fit
和偶数数字model.fit1
。
另一种选择是使用嵌套列表:对于每个步骤,可以如下创建包含model.fit
和model.fit1
的子列表:
mylist = list()
aux = 1
for(i in 1:9){
for(j in 1:5){
for (b in 1:5){
for (f in 1:(max(data[,'colum']))) {
mylist[[aux]]<-list(lm(y~x),lm2(y~x))
aux = aux + 1
}
}
}
}
write.table ()
然后,对于每一步,您可以通过执行model.fit
访问mylist[[aux]][[1]]
,通过执行model.fit1
访问mylist[[aux]][[2]]
。