Stata中的Twoway表格中包含对每个变量的所有可能响应

时间:2015-02-27 10:30:59

标签: stata

我正在尝试在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可以用于此目的,但

  1. 我不想指定包含
  2. 的所有可能的响应选项

    1. 我希望能够像tabout一样干净地导出表格。我经常需要创建一批表格,其中表格中的很多单元格由于缺失而没有任何观察结果,而且我经常有许多可能的响应选项。
    2. 有关解决方法的任何想法,我仍然可以使用tabout或类似内容吗?

1 个答案:

答案 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 

注意:

    在执行此操作之前,必须先安装
  1. tabcount。使用ssc inst tabcount来执行此操作。上面的命令被注释为第一次使用后不需要的信号。

  2. 在查看所需的交叉组合之前,您可以根据数据中的查找值编写自己的命令或执行文件。

  3. 论文here可能有助于作为更广泛的讨论。