Stata tabstat:如何按特定变量对输出进行排序/排序?

Stata tabstat:如何按特定变量对输出进行排序/排序?,stata,Stata,我收集了一些NBA球员的三双比赛数据,想找出谁的平均数据最具爆炸性 来源是“篮球参考-玩家游戏查找-三双”。(很抱歉,由于缺乏声誉,我无法发布直接url) 因此,我生成了一个表格,总结了几个变量(pts trb ast stl blk)的描述性统计数据(例如计数平均值),使用: tabstat pts trb ast stl blk,统计(计数平均值)格式(%9.1f)(玩家) 我得到的是下表: tabstat结果: 我如何告诉Stata以count>=10(曾经获得10次或更多三倍双打的球员

我收集了一些NBA球员的三双比赛数据,想找出谁的平均数据最具爆炸性

来源是“篮球参考-玩家游戏查找-三双”。(很抱歉,由于缺乏声誉,我无法发布直接url)

因此,我生成了一个表格,总结了几个变量(
pts trb ast stl blk
)的描述性统计数据(例如计数平均值),使用:

tabstat pts trb ast stl blk,统计(计数平均值)格式(%9.1f)(玩家)

我得到的是下表:

tabstat
结果:

我如何告诉Stata以
count>=10
(曾经获得10次或更多三倍双打的球员)作为一列筛选球员,然后按
pts
对表格进行排序并获得:

理想结果:

如上所述,我想说迈克尔·乔丹和詹姆斯·哈登是前两位最具爆炸性的三双选手,而达雷尔·沃克是最经济的。

请研究如何展示一个其他人可以直接合作的例子。此外,避免使用无法被普遍理解的体育专业术语,并更多地关注一般编程问题也会有所帮助。幸运的是,你想要的似乎很清楚

为此,您需要在调用
tabstat
之前创建一个变量来定义所需的顺序。要获得您想要的标签(值),请使用
labmask
search labmask
,然后从给定的Stata日志位置下载)

这里有一些技巧

sysuse auto, clear 

egen mean = mean(weight), by(rep78) 
egen count = count(weight), by(rep78) 

egen group = group(mean rep78) if count >= 5 
replace group = -group 
labmask group, values(rep78) 
label var group "`: var label rep78'" 

tabstat mpg weight , by(group) s(count mean) format(%1.0f) 

Summary statistics: N, mean
  by categories of: group (Repair Record 1978)

 group |       mpg    weight
-------+--------------------
     2 |         8         8
       |        19      3354
-------+--------------------
     3 |        30        30
       |        19      3299
-------+--------------------
     4 |        18        18
       |        22      2870
-------+--------------------
     5 |        11        11
       |        27      2323
-------+--------------------
 Total |        67        67
       |        21      3030
----------------------------
主要详情:

  • 分组变量不仅基于要排序的平均值,而且还基于原始分组变量,以防平均值上存在关联

  • 要从最高平均值向下排序,必须对分组变量求反

  • tabstat
    不在表体中显示变量标签。(通常没有足够的空间容纳它们。)