首页 文章

如何从R中的For循环导出多个模型(列表对象无法吸收data.frame)

提问于
浏览
0

我需要将一些模型导出为excel .

我计划使用36列1000到4000行运行360个模型

数据在单个data.frame中成功导入,没有丢失数据模型在.5到28秒内无故障执行

在声明列表本身之后,问题从模型开始,因为列表对象无法强制加倍现在我需要在使用新对象之前将每个对象声明为数据帧,因为R拒绝将任何新var与列表分开

这是要开始的代码:

fitmodel.list=list()
# declare list()

# From here I post models
# Error 1-fitmodel Cannnot write data frame to list object 


        for (i in 2:36){  
        j=10*(i-2)+1
        fitmodel  = ugarchfit(spec=model,data=MD3[1:4175,i]) 
        fitmodel.list[j+1] <- fitmodel
         }
        # 10 models.. from each data column

        Excel_result     <- dplyr::bind_cols(fitmodel.list)
        alt_Excel result <- dplyr::bind_rows(fitmodel.list)
        write.csv(Marketmodels_36indices,
                  "Marketmodels_36indices.csv",
                  row.names=TRUE,append=TRUE)

由于列表对象的问题,我无法继续[ fitmodel = ugarchfit.. 在任何情况下都没有完成,它在循环外执行得很好]

如果需要,我可以在没有比较excel列的结果的情况下生活,因此pdf或文本版本适合我 . 但是,我确信 grab 会话屏幕是不可能的,因为结果模型是100行,具有异方差性测试和其他

在类似的练习中,我能够使用参数名称 lm$alpha 等从 lm 导出250个这样的对象,并将每个对象读取为 dataframe 作为每行lm输出的行,稍后将其导出为excel . 这里的模型框架似乎是在输出残差之前的100行,我可以直接从包中获得( rugarch

1 回答

  • 0

    创建了 broom 包以将模型输出转换为tidyverse友好元组 . 我怀疑你可以使用 broom 将你的输出强制转换为可以更容易地导出到Excel的元素 . 你真的没有一个可重复的例子供我用来说明扫帚,所以也许你应该看一下包装本身:

    https://github.com/tidymodels/broom

    Broom正在积极开发中,所以我建议从github安装dev版本 .

相关问题