从Stata 12导出matrix到Excel或MATLAB
我需要将Stata的回归结果matrix导出到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
将matrix导出到Excel,然后我可以导入到MATLAB。 但是, xml_tab
给了我太多的信息。 我想要导出的matrix只是两个回归的估计系数,没有标签。 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
帮助文件,看看我能得到我想要的,但任何人都可以帮助matwrite
或xml_tab
?
我写了一个.ado程序来做到这一点,名为mat2txt2。 你可以在这里find它: http : //code.google.com/p/kk-adofiles/source/browse/#hg%2Fm我写了这个程序来扩展Ben Jann和M Blasnik的mat2txt.ado的function。
该程序将一个matrix导出到分隔文本文件(例如,逗号分隔的.csv文件或制表符分隔的文件)。 从那里,你可以很容易地将数据拖入Excel或Matlab。
要将matrix写入预先存在的Excel文件,请查看putexcel
。
putexcel
将不会导出matrix行和列名称,除非您告诉它。
help putexcel
简而言之,要导出一个Statamatrix:
如有必要改变目录(例子)
cd ""Z:\Thesis\data needed for 2007\"
设置putexcel
来调用你的Excel文件: putexcel
允许你在Excel文件中指定你想要修改的表单,如果你编写了一个Excel表单来转换结果,这putexcel
上用场。 如果你这样做,一定要调用modify
选项,而不是replace
: replace
将覆盖您的Excel文件中的任何预先存在的工作
putexcel set RegCoefs.xlsx, modify sheet(sheetname)
接下来调用putexcel
,指定在哪个单元格上放置matrix
putexcel A1 = matrix(revCA1)
如果成功,Stata应该返回以下消息:
file RegCoefs.xlsx saved