如何让STATA在表格中报告零 [英] How to get Stata to report zeroes in tabulate

查看:13
本文介绍了如何让STATA在表格中报告零的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用Stata中的tabulate命令来创建频率的时间序列。当我尝试在遍历每个日期之后组合tabulate的输出时,问题就出现了。tabulate在不存在对相关变量的值的观测时,将不包括0作为条目。例如,如果我想计算一个班级中10、11和12岁的学生在三年时间内的人数,如果只有一个组代表,那么Stata可能会输出(8),因此我们不知道这8个学生属于哪个组:它可以是(0,8,0)或(0,0,8)。

如果时间序列很短,这不是问题,因为"结果"窗口显示了哪些类别被表示或没有被表示。我的数据有一个更长的时间序列。有没有人知道迫使Stata在这些表格中包括零的解决方案/方法?我的代码的相关部分如下:

# delimit;
set more off;
clear;
matrix drop _all;
set mem 1200m;
cd ;
global InputFile "/Users/.../1973-2010.dta";
global OutputFile "/Users/.../results.txt";

use $InputFile;
compress;

log using "/Users/.../log.txt", append;

gen yr_mn = ym(year(datadate), month(datadate));
la var yr_mn "Year-Month Date"

xtset, clear;
xtset id datadate, monthly;

/*Converting the Ratings Scale to Numeric*/;
gen LT_num = .;
replace LT_num = 1 if splticrm=="AAA";
replace LT_num = 2 if (splticrm=="AA"||splticrm=="AA+"||splticrm=="AA-");
replace LT_num = 3 if (splticrm=="A"||splticrm=="A+"||splticrm=="A-");
replace LT_num = 4 if (splticrm=="BBB"||splticrm=="BBB+"||splticrm=="BBB-");
replace LT_num = 5 if (splticrm=="BB"||splticrm=="BB+"||splticrm=="BB-");
replace LT_num = 6 if (splticrm=="B"||splticrm=="B+"||splticrm=="B-");
replace LT_num = 7 if (splticrm=="CCC"||splticrm=="CCC+"||splticrm=="CCC-");
replace LT_num = 8 if (splticrm=="CC");
replace LT_num = 9 if (splticrm=="SD");
replace LT_num = 10 if (splticrm=="D");

summarize(yr_mn);
local start = r(min);
local finish = r(max);

forv x = `start'/`finish' {;
    qui tab LT_num if yr_mn == `x', matcell(freq_`x');
};

log close;

推荐答案

此问题由tabcount解决。参见2003年的论文

http://www.stata-journal.com/article.html?article=pr0011

并通过search tabcount获取链接后下载程序代码和帮助文件。

这篇关于如何让STATA在表格中报告零的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆