如何解决在Stata中,如何创建组以使每个组具有相同的另一个变量总数?
我有一个面板数据集,想要从数据创建组。
egen AUX = cut(variable),group(5)
这将创建组,每个组具有(几乎)相同数量的单元。我现在想要的是这样的组,即每个组中另一个变量的总数相同。例如,我想对家庭进行分组,以使每个垃圾箱的总收入相同。
如何设置这样的命令?
解决方法
这里没有数据示例,尚不清楚面板结构是如何输入的。例如,您要合并所有年份(?)的家庭,还是单独使用几年?
无论哪种方式,该技术都是根据累积和的分数进行拆分。一个细节是,应将相同的值分配给同一容器。
sysuse auto,clear
bysort foreign (price) : gen runningsum = sum(price)
* same values belong together
bysort foreign price (runningsum) : replace runningsum = runningsum[_N]
by foreign : gen quintile = ceil(5 * runningsum/runningsum[_N])
bysort foreign quintile : egen qtotal = total(price)
list price qtotal quintile if foreign,sepby(quintile)
+----------------------------+
| price qtotal quintile |
|----------------------------|
53. | 3,748 24231 1 |
54. | 3,798 24231 1 |
55. | 3,895 24231 1 |
56. | 3,995 24231 1 |
57. | 4,296 24231 1 |
58. | 4,499 24231 1 |
|----------------------------|
59. | 4,589 31280 2 |
60. | 4,697 31280 2 |
61. | 5,079 31280 2 |
62. | 5,397 31280 2 |
63. | 5,719 31280 2 |
64. | 5,799 31280 2 |
|----------------------------|
65. | 5,899 25273 3 |
66. | 6,229 25273 3 |
67. | 6,295 25273 3 |
68. | 6,850 25273 3 |
|----------------------------|
69. | 7,140 24959 4 |
70. | 8,129 24959 4 |
71. | 9,690 24959 4 |
|----------------------------|
72. | 9,735 34720 5 |
73. | 11,995 34720 5 |
74. | 12,990 34720 5 |
+----------------------------+
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。