Stata 如何导出仅包含带>;的单元格的表;N观察?
我想将几个表格从Stata导出到Excel,但我只对每个单元格的观察值超过Stata 如何导出仅包含带>;的单元格的表;N观察?,stata,Stata,我想将几个表格从Stata导出到Excel,但我只对每个单元格的观察值超过5的表格感兴趣。我有没有办法设定一个条件来达到这个目的 使用社区贡献的命令tabout我尝试按照以下思路做一些事情: tabout var1 if n(cell) > 5 对于观察值小于5的单元格,我还希望导出的表显示另一个值(例如或*),而不是0 一般的方法是两个过程,一个是计算新变量中的单元格频率,另一个是以该变量为条件进行制表 . sysuse auto (1978 Automobile Data) . t
5的表格感兴趣。我有没有办法设定一个条件来达到这个目的
使用社区贡献的命令tabout
我尝试按照以下思路做一些事情:
tabout var1 if n(cell) > 5
对于观察值小于5
的单元格,我还希望导出的表显示另一个值(例如
或*
),而不是0
一般的方法是两个过程,一个是计算新变量中的单元格频率,另一个是以该变量为条件进行制表
. sysuse auto
(1978 Automobile Data)
. tab foreign rep78
| Repair Record 1978
Car type | 1 2 3 4 5 | Total
-----------+-------------------------------------------------------+----------
Domestic | 2 8 27 9 2 | 48
Foreign | 0 0 3 9 9 | 21
-----------+-------------------------------------------------------+----------
Total | 2 8 30 18 11 | 69
. table foreign rep78
----------------------------------------
| Repair Record 1978
Car type | 1 2 3 4 5
----------+-----------------------------
Domestic | 2 8 27 9 2
Foreign | 3 9 9
----------------------------------------
. bysort foreign rep78 : generate freq = _N
. table foreign rep78 if freq >= 5
----------------------------------
| Repair Record 1978
Car type | 2 3 4 5
----------+-----------------------
Domestic | 8 27 9
Foreign | 9 9
----------------------------------
更通用的代码将支持if
和in
条件 一般的方法是两个过程,一个是计算新变量中的单元格频率,另一个是以该变量为条件进行制表
. sysuse auto
(1978 Automobile Data)
. tab foreign rep78
| Repair Record 1978
Car type | 1 2 3 4 5 | Total
-----------+-------------------------------------------------------+----------
Domestic | 2 8 27 9 2 | 48
Foreign | 0 0 3 9 9 | 21
-----------+-------------------------------------------------------+----------
Total | 2 8 30 18 11 | 69
. table foreign rep78
----------------------------------------
| Repair Record 1978
Car type | 1 2 3 4 5
----------+-----------------------------
Domestic | 2 8 27 9 2
Foreign | 3 9 9
----------------------------------------
. bysort foreign rep78 : generate freq = _N
. table foreign rep78 if freq >= 5
----------------------------------
| Repair Record 1978
Car type | 2 3 4 5
----------+-----------------------
Domestic | 8 27 9
Foreign | 9 9
----------------------------------
更通用的代码将支持if
和in
条件 您可以使用社区贡献的命令导出这样的表esttab
:
sysuse auto, clear
bysort foreign rep78 : generate freq = _N
quietly tabulate foreign rep78 if freq >= 5, matcell(A)
forvalues i = 1 / 2 {
forvalues j = 1 / 4 {
if A[`i', `j'] == 0 matrix A[`i', `j'] = .
}
}
esttab matrix(A)
----------------------------------------------------------------
A
c1 c2 c3 c4
----------------------------------------------------------------
r1 8 27 9 .
r2 . . 9 9
----------------------------------------------------------------
您可以使用社区贡献的命令esttab
导出这样的表:
sysuse auto, clear
bysort foreign rep78 : generate freq = _N
quietly tabulate foreign rep78 if freq >= 5, matcell(A)
forvalues i = 1 / 2 {
forvalues j = 1 / 4 {
if A[`i', `j'] == 0 matrix A[`i', `j'] = .
}
}
esttab matrix(A)
----------------------------------------------------------------
A
c1 c2 c3 c4
----------------------------------------------------------------
r1 8 27 9 .
r2 . . 9 9
----------------------------------------------------------------
非常感谢。但是,当我使用条件(在您的示例中,freq>=5)时,STATA在观察值少于5的单元格中返回0。是否可以使用其他值(如)更改0。还是*?很好,我看不到你的数据或代码。如果您指的是来自tabout
(SSC)的一些结果,对不起,但我无法帮助您,因为我没有使用它。对于STATA,请阅读STATA,永远。谢谢!但是,当我使用条件(在您的示例中,freq>=5)时,STATA在观察值少于5的单元格中返回0。是否可以使用其他值(如)更改0。还是*?很好,我看不到你的数据或代码。如果您指的是来自tabout
(SSC)的一些结果,对不起,但我无法帮助您,因为我没有使用它。对于STATA,请始终阅读STATA。