统计数据:汇总统计数据和表格。按N排序 [英] Stata: Summary stats with table. Order by N
本文介绍了统计数据:汇总统计数据和表格。按N排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何按频率降序对下表进行排序?
sysuse auto.dta, clear
replace make = substr(make,1, strpos(make," ")-2)
table make, c(N price mean price median price sd price min price max price) format(%9.2f) center
第一个观察值应为buic
或old
且N=7。是否有按频率排序的方法?
上面的代码还给出了too many stats()
的错误。是否有允许更多列的替代过程?
推荐答案
(在下面的内容中,我遵循了您相当奇怪的聚合make
的方法。word(make, 1)
让我觉得更自然;而且无论如何,您的方法缺少"Subaru"。)
table
的文档规定,不能指定超过5个统计数据。例如,见http://www.stata.com/help.cgi?table,因此这个问题不应该令人惊讶。
但是,tabstat
可以显示更多汇总统计信息。您想要的排序顺序可以通过创建一个基于频率的分类变量和make2
变量来获得:必须同时使用这两个变量,因为频率上有联系。可以使用用户编写的labmask
命令(search labmask
用于下载位置)分配值标签。我不知道有什么方法可以得到不同的计数格式。
sysuse auto.dta, clear
gen make2 = substr(make,1, strpos(make," ")-2)
replace make2 = make if missing(make2)
bysort make2 : gen freq = -_N
egen group = group(freq make2)
labmask group, values(make2)
tabstat price, s(N mean median sd min max) format(%9.2f) by(group)
Summary for variables: price
by categories of: group (group(freq make2))
group | N mean p50 sd min max
-------+------------------------------------------------------------
Buic | 7.00 6075.29 5189.00 2257.92 4082.00 10372.00
Old | 7.00 6050.86 4890.00 2486.49 4181.00 10371.00
Chev | 6.00 4372.33 4229.50 911.30 3299.00 5705.00
Merc | 6.00 4913.83 4947.50 1239.38 3291.00 6303.00
Pont | 6.00 4878.83 4828.50 582.49 4172.00 5798.00
Plym | 5.00 4820.00 4482.00 955.69 4060.00 6486.00
Datsu | 4.00 6006.50 5654.00 1573.12 4589.00 8129.00
Dodg | 4.00 5055.50 4948.00 1236.39 3984.00 6342.00
V | 4.00 6021.00 6123.50 1166.44 4697.00 7140.00
AM | 3.00 4215.67 4099.00 485.63 3799.00 4749.00
Cad | 3.00 13930.33 14500.00 2313.71 11385.00 15906.00
Linc | 3.00 12852.33 13466.00 1175.50 11497.00 13594.00
Toyot | 3.00 5122.00 5719.00 1193.32 3748.00 5899.00
Aud | 2.00 7992.50 7992.50 2400.63 6295.00 9690.00
For | 2.00 4288.00 4288.00 142.84 4187.00 4389.00
Hond | 2.00 5149.00 5149.00 919.24 4499.00 5799.00
BM | 1.00 9735.00 9735.00 . 9735.00 9735.00
Fia | 1.00 4296.00 4296.00 . 4296.00 4296.00
Mazd | 1.00 3995.00 3995.00 . 3995.00 3995.00
Peugeo | 1.00 12990.00 12990.00 . 12990.00 12990.00
Renaul | 1.00 3895.00 3895.00 . 3895.00 3895.00
Subaru | 1.00 3798.00 3798.00 . 3798.00 3798.00
Volv | 1.00 11995.00 11995.00 . 11995.00 11995.00
-------+------------------------------------------------------------
Total | 74.00 6165.26 5006.50 2949.50 3291.00 15906.00
--------------------------------------------------------------------
在某些方面,更直接的解决方案是只需collapse
数据,然后分配适当的排序顺序和格式。
sysuse auto.dta, clear
gen make2 = substr(make,1, strpos(make," ")-2)
replace make2 = make if missing(make2)
collapse (count)n=price (mean)mean=price (p50)median=price (sd)sd=price (min)min=price (max)max=price, by(make2)
gsort -n
format mean-max %9.2f
format n %9.0f
list make2 n mean median sd min max, sep(0) noobs
+------------------------------------------------------------------+
| make2 n mean median sd min max |
|------------------------------------------------------------------|
| Buic 7 6075.29 5189.00 2257.92 4082.00 10372.00 |
| Old 7 6050.86 4890.00 2486.49 4181.00 10371.00 |
| Chev 6 4372.33 4229.50 911.30 3299.00 5705.00 |
| Pont 6 4878.83 4828.50 582.49 4172.00 5798.00 |
| Merc 6 4913.83 4947.50 1239.38 3291.00 6303.00 |
| Plym 5 4820.00 4482.00 955.69 4060.00 6486.00 |
| V 4 6021.00 6123.50 1166.44 4697.00 7140.00 |
| Datsu 4 6006.50 5654.00 1573.12 4589.00 8129.00 |
| Dodg 4 5055.50 4948.00 1236.39 3984.00 6342.00 |
| Cad 3 13930.33 14500.00 2313.71 11385.00 15906.00 |
| Toyot 3 5122.00 5719.00 1193.32 3748.00 5899.00 |
| Linc 3 12852.33 13466.00 1175.50 11497.00 13594.00 |
| AM 3 4215.67 4099.00 485.63 3799.00 4749.00 |
| Aud 2 7992.50 7992.50 2400.63 6295.00 9690.00 |
| For 2 4288.00 4288.00 142.84 4187.00 4389.00 |
| Hond 2 5149.00 5149.00 919.24 4499.00 5799.00 |
| Volv 1 11995.00 11995.00 . 11995.00 11995.00 |
| Fia 1 4296.00 4296.00 . 4296.00 4296.00 |
| Mazd 1 3995.00 3995.00 . 3995.00 3995.00 |
| Peugeo 1 12990.00 12990.00 . 12990.00 12990.00 |
| Subaru 1 3798.00 3798.00 . 3798.00 3798.00 |
| Renaul 1 3895.00 3895.00 . 3895.00 3895.00 |
| BM 1 9735.00 9735.00 . 9735.00 9735.00 |
+------------------------------------------------------------------+
这篇关于统计数据:汇总统计数据和表格。按N排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文