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

时间:2017-02-23 03:48:58

标签: stata

我聚集了一些NBA球员'他们的三双游戏的数据,并希望找出谁平均获得最具爆炸性的数据。

来源是"篮球参考 - 玩家游戏查找 - 三倍双打"。(很抱歉,我因为缺乏声誉而无法发布直接网址)

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

tabstat pts trb ast stl blk, statistics(count mean) format(%9.1f) by(player)

我得到的是下表:

tabstat结果:

enter image description here

我怎样才能告诉Stata按照count >= 10(有人获得10次或更多次三倍)来过滤玩家,然后按pts对表进行排序并获取:

理想的结果:

enter image description here

如上所述,我想说迈克尔乔丹和詹姆斯哈登是最具爆发力的三双球员,而达雷尔沃克是最经济的球员。

1 个答案:

答案 0 :(得分:0)

请研究https://stackoverflow.com/help/mcve如何展示其他人可以立即使用的示例。此外,避免不能普遍理解的体育专业术语,更多地关注一般编程问题会有所帮助。幸运的是,你想要的东西似乎很清楚。

要执行此操作,您需要在tabstat来电之前创建一个定义所需订单的变量。要根据需要标记(值),请使用labmasksearch labmask,然后从 Stata Journal 位置下载)。

这是一些技巧。

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

主要细节:

  1. 分组变量不仅基于您要排序的方式,还基于原始分组变量,以防万一有关系。

  2. 要从最高均值向下排序,必须否定分组变量。

  3. tabstat不会在表格正文中显示变量标签。 (通常没有足够的空间给他们。)