如何在Excel中将统计回归导出到多张表中

ukxgm1gy  于 2023-02-25  发布在  其他
关注(0)|答案(2)|浏览(449)

我正在使用Stata,并有这个问题:
假设我有两个结果变量y1y2,以及三个回归变量x1x2x3(您可以模拟它们,因为这个问题的数据并不重要)
然后,假设我使用foreach循环进行这些回归

foreach y in y1 y2 {
    
    reg `y' x1
    outreg2 using "./here goes my working directory/results_`y'.xlsx, excel replace ctitle(Model 1)

    reg `y' x1 x2
    outreg2 using "./here goes my working directory/results_`y'.xlsx, excel append ctitle(Model 2)

    reg `y' x1 x2 x3
    outreg2 using "./here goes my working directory/results_`y'.xlsx, excel append ctitle(Model 3)
}

因此,我将有两个excel文档,一个用于y1,另一个用于y2,每个excel文档将有一个包含3列回归表的工作表。
我怎么可能只有一个包含两个工作表的excel文档,一个工作表包含y1的回归表,另一个工作表包含y2的回归表?
我在outreg2文档(excel部分)中没有看到sheet选项。
(In我的情况有很多回归,因此复制并粘贴到单个文档中不是一个可行的选项)
提前感谢!!

cygmwpex

cygmwpex1#

据我所知,在outreg2中没有办法做到这一点,但即使有,我认为有一个更好的方法来做到这一点。我建议当在Excel中使用输出时,也允许手动更改,您应该将原始输出文件与最终文件分开。
因此,在代码中,为每个输出创建一个文件。

foreach y in y1 y2 {
    
    reg `y' x1
    outreg2 using "./results/raw/results_a_`y'.xlsx", excel ctitle(Model 1)

    reg `y' x1 x2
    outreg2 using "./results/raw/results_b_`y'.xlsx", excel ctitle(Model 2)

    reg `y' x1 x2 x3
    outreg2 using "./results/raw/results_b_`y'.xlsx", excel ctitle(Model 3)
}

这将在/raw/文件夹中生成6个文件。
然后创建文件./results/results.xlsx。这是您的最终文件。然后为每个文件创建一个工作表。在工作表中您希望"./results/raw/results_a_y1.xlsx"中的结果的单元格A1中添加公式=[results_a_y1.xlsx]Sheet1!A1。然后您可以将其扩展到您想要的任意多个单元格。您可能需要手动执行此操作才能使其工作(例如,请参见here)。
你会在原始文件中的空单元格中得到过多的0。只需删除那里的公式。
此工作流程的好处是您可以编辑最终文件的颜色、单元格大小、线条、手动标题等,而不会在下次重新运行Stata脚本时覆盖这些编辑,因为数据脚本只覆盖原始文件。

mzsu5hc0

mzsu5hc02#

不太确定命令,但您可以以相对简单的方式将多个Excel文件合并为一个文件中的电子表格,请选中以下链接中显示的第二个选项:
https://www.ablebits.com/office-addins-blog/merge-multiple-csv-files-excel/

相关问题