我需要将回归结果矩阵从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
帮助文件,看看我是否可以得到我想要的内容,但任何人都可以帮助matwrite
或xml_tab
吗?
答案 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
选项,而不是replace
:replace
将覆盖Excel文件中任何已有的作品
putexcel set RegCoefs.xlsx, modify sheet(sheetname)
下一个电话putexcel
,指定您希望放置矩阵的单元格
putexcel A1 = matrix(revCA1)
如果成功,Stata应返回以下消息:
file RegCoefs.xlsx saved