我正在尝试在Stata中以tab
(twoway)或tabout
的方式创建许多交叉表。但是,我想包括两个变量的响应选项,即使twoway列表中该变量的每个单元格都为零。例如,如果我们稍微改变自动数据集:
sysuse auto
tab rep78 foreign
* Altering data
replace foreign=. if foreign==0 & rep78==1
tab rep78 foreign
在更改的数据中,可能存在rep78==1
的汽车,但在变量foreign
中没有丢失的观测数据中没有这样的实例。
我想要的是一张如下表格:
Repair
Record Car type
1978 Domestic Foreign Total
1 0 0 0
2 8 0 8
3 27 3 30
4 9 9 18
5 2 9 11
Total 46 21 67
Nick Cox的非常好tabcount
可以用于此目的,但
和
tabout
一样干净地导出表格。我经常需要创建一批表格,其中表格中的很多单元格由于缺失而没有任何观察结果,而且我经常有许多可能的响应选项。有关解决方法的任何想法,我仍然可以使用tabout
或类似内容吗?
答案 0 :(得分:1)
正如我在最初的评论中所说,必须有一些意义,Stata被告知什么定义了行和列,或者如何找出它。不过,这可能有所帮助:
* ssc inst tabcount
sysuse auto, clear
tab rep78 foreign
levelsof rep78, local(rows)
levelsof foreign, local(cols)
replace foreign=. if foreign==0 & rep78==1
tabcount rep78 foreign, v1(`rows') v2(`cols') zero
注意:
tabcount
。使用ssc inst tabcount
来执行此操作。上面的命令被注释为第一次使用后不需要的信号。
在查看所需的交叉组合之前,您可以根据数据中的查找值编写自己的命令或执行文件。
论文here可能有助于作为更广泛的讨论。