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