2012-04-01 219 views
1

我需要将Stata的回归结果矩阵导出到MATLAB。我试过使用Stata命令matwrite而没有成功(我得到一个unrecognized command错误)。这里是一个尝试:从Stata 12导出矩阵到Excel或MATLAB

... 
    *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 
    ... 

我曾使用该矩阵出口到Excel,我可以再导入到MATLAB的塔塔xml_tab更多的成功。但是,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帮助吗?

回答

5

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

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

+0

Ooohh喔是s好的。我要试一下。 – ben 2012-04-04 20:07:14

2

要将矩阵写入预先存在的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,指定在哪个小区OU想将您的矩阵

putexcel A1 = matrix(revCA1) 

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

file RegCoefs.xlsx saved