全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 经管代码库
匿名
7318 3
2015-11-04

[Stata] 报表呈现(5)  putexcel

Kevin Crow, Senior Software Developer

转自http://blog.stata.com/2013/09/25/export-tables-to-excel/

      Stata在运行命令时一般会将执行结果自动加以保存,存储结果的内容实质上是局部宏、全局宏和矩阵等,其中e-class/r-class是最为常见的两类命令,并以e()和r()的形式存储:其中:e()存储模型估计(estimation)命令的运行结果(如:regress, logistic等,一直保留到下一模型的估计之前),r()存储一般命令(如:summarize即在执行更多命令之前所使用的命令)的运行结果,键入 ereturn list return list可分别加以查看:

       注:putexcel为Stata13起新增官方命令
以下以计算变量间线性相关系数为例,对putexcel的用法加以简介:
复制代码

1.JPG




由于correlate不是模型估计命令,因此使用return list查看


2.JPG


现使用putexcel将结果加以输出,其语法格式为

复制代码
return list可以看出相关系数的计算结果被保存在了2*2的矩阵中,使用matrix list r(C)可加以查看:

3.JPG


现在借助putexcel命令将矩阵输出,并保存为corr.xlsx,即

复制代码

4.JPG


菜单操作:
File--->Export------>Results to EXCEL spreadsheet
             1.JPG
注:在Stata14中步骤稍微不同:添加putexcel set
复制代码


有些命令在运行时不存储执行结果,如tabulate,
复制代码
这时可借助matcell()和matrow()将Freq列值和行值(即Domestic和foreign,Car type实际为数值型变量)以矩阵形式保存:
复制代码

5.JPG

复制代码

7.JPG

对照实际二维表,可见所产生的这一表格非常粗略,Cum列和Total行,car type变量值标签未显示,仅为0/1变量值(即matrix list names),而且单元格数值格式需要调整:

使用labeldisplay修正:

复制代码

第1-4行填充A1-D1单元格,10-25行填充第2/3行单元格,第6行为rowsof()函数获取names的行数:
如果12行中返回names矩阵(2*1)中第一行第一列即0,
那么13行将对应变量值标签中的foreign否则对应domestic
第27行填充A4 B4 C4单元格
注:(可附加选项keepcellformat调整单元格数值格式

8.JPG


此外,可用tab2xl命令摆脱编辑上述代码的繁琐:特别是需产生多个变量的二维表
基本语法格式
复制代码
安装方法:
复制代码
对于上例只需输入以下代码,后打开table1.xlsx即可
复制代码

10.JPG





二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-11-6 09:48:27
谢谢分享
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-11-6 15:55:00
2010517155lpq 发表于 2015-11-6 09:48
谢谢分享
谢谢,感谢支持!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-5-2 12:27:10
为什么显示using not allowed 呢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群