制表命令Stata

时间:2014-02-15 01:45:45

标签: frequency stata

我不知道Stata是否可以做到这一点,但我经常使用tabulate命令来查找频率。例如,我有一个成功变量,取值为0到1,我想知道某组观察的成功率,即tab success if group==1。我想知道我是否可以做这个操作的反过来。也就是说,我想知道我是否可以找到频率大于或等于15%的“组”值。

是否有命令执行此操作?

由于

作为一个例子

sysuse auto
gen success=mpg<29

现在我想找到价格的价值,例如成功变量的频率大于75%。

2 个答案:

答案 0 :(得分:1)

我不确定我是否完全理解你的问题/情况,但我相信这可能有用。您可以egen一个等于成功均值的变量,按组,然后查看哪些观察结果具有您正在寻找的平均值(成功)的值。

egen avgsuccess = mean(success), by(group)
tab group if avgsuccess >= 0.15
list group if avgsuccess >= 0.15

这会实现你想要的吗?

答案 1 :(得分:1)

根据@Nick:

ssc install groups 
sysuse auto 
count
   74
#return list optional
local nobs=r(N) # r(N) gives total observation 

groups  rep78, sel(f >(0.15*`r(N)')) #gives the group for which freq >15 % 

  +---------------------------------+
  | rep78   Freq.   Percent    % <= |
  |---------------------------------|
  |     3      30     43.48   57.97 |
  |     4      18     26.09   84.06 |
  +---------------------------------+
groups  rep78, sel(f >(0.10*`nobs'))# more than 10 %

  +----------------------------------+
  | rep78   Freq.   Percent     % <= |
  |----------------------------------|
  |     2       8     11.59    14.49 |
  |     3      30     43.48    57.97 |
  |     4      18     26.09    84.06 |
  |     5      11     15.94   100.00 |
  +----------------------------------+