将矩阵从Stata 12导出到Excel或MATLAB

时间:2012-04-01 19:24:14

标签: excel matlab export-to-excel stata

我需要将回归结果矩阵从Stata输出到MATLAB。我尝试使用Stata命令matwrite但没有成功(我收到unrecognized command错误)。这是尝试:

    ...
    *Regression 1
    reg invlrevcrp_CAm071 lacres_CAm071 lrainm07 lrainm07sq ///
    lannxt lannxtsq lrlanxtsq pkgamz if invlrevcrp_CAm071~=.
    reg lrevcrp_CAm071 lacres_CAm071 lrainm07 lrainm07sq ///
    lannxt lannxtsq lrlanxtsq lpkgamz
    * Store results
    mat coef=get(_b)
    *Export to matlab
    matwrite using "Z:\Thesis\data needed for 2007\matlabfile", ///
    mat(coef) replace
    ...

我使用Stata xml_tab取得了更大的成功,它将矩阵导出到Excel,然后我可以将其导入MATLAB。但是,xml_tab给了我太多信息。我想要导出的矩阵只是两个回归的估计系数,没有标签。 xml_tab导出与回归相关的所有内容 - t统计量,p值,95%conf。间隔等,包括标签。以下是使用此方法的代码:

     *===============================
     * Regressions
     *===============================
     *Regression 1
     reg invlrevcrp_CAm071 lacres_CAm071 lrainm07 lrainm07sq ///
     lannxt lannxtsq lrlanxtsq pkgamz if invlrevcrp_CAm071~=.
     reg lrevcrp_CAm071 lacres_CAm071 lrainm07 lrainm07sq ///
     lannxt lannxtsq lrlanxtsq lpkgamz
     * Store results
     estimates store revCA1
     *Regression 2
     reg lcostcrp_CAm071 lacres_CAm071 lrainm07 lrainm07sq ///
     lannxt lannit lannxtsq lannitsq lpkgf3 lwage if costcrp_CAm071>0
     *Store results
     estimates store cosCA1
     *Export to excel
     xml_tab revCA1 cosCA1, ///
     save("Z:\Thesis\data needed for 2007\RegCoefs") replace

我正在查看xml_tab帮助文件,看看我是否可以得到我想要的内容,但任何人都可以帮助matwritexml_tab吗?

2 个答案:

答案 0 :(得分:5)

我写了一个.ado程序来做这个,名为mat2txt2。你可以在这里找到它: http://code.google.com/p/kk-adofiles/source/browse/#hg%2Fm我编写了这个程序来扩展Ben Jann和M Blasnik的mat2txt.ado的功能。

程序将矩阵导出到分隔的文本文件(例如,以逗号分隔的.csv文件或制表符分隔文件)。从那里,您可以轻松地将数据拉入Excel或Matlab。

答案 1 :(得分:3)

要将矩阵写入预先存在的Excel文件,请查看putexcel

putexcel除非您告诉它,否则不会导出矩阵行和列名称。

help putexcel

简而言之,要导出Stata矩阵:

必要时更改目录(示例)

cd ""Z:\Thesis\data needed for 2007\"

设置putexcel以调用您的Excel文件:putexcel允许您在Excel文件中指定要修改的工作表,如果您已编写Excel工作表以转换结果,这将非常有用。如果您这样做,请务必致电modify选项,而不是replacereplace将覆盖Excel文件中任何已有的作品

putexcel set RegCoefs.xlsx, modify sheet(sheetname)

下一个电话putexcel,指定您希望放置矩阵的单元格

putexcel A1 = matrix(revCA1)

如果成功,Stata应返回以下消息:

file RegCoefs.xlsx saved