楼主: chenguangyun
14890 6

[数据管理求助] stata如何根据特定条件将变量值加总 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

大专生

70%

还不是VIP/贵宾

-

威望
0
论坛币
36 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
198 点
帖子
9
精华
0
在线时间
109 小时
注册时间
2016-12-24
最后登录
2021-8-27

楼主
chenguangyun 发表于 2020-8-26 18:17:56 |AI写论文
150论坛币
计量小白,求帮助!数据为1990-2000年各省份员工的数量(total_employ),省与省之间有一个关系等级,请问怎么根据等级关系进行加总,形成一个新变量?就比如从表中可得到1990年北京市(BJ)对应等级为1的省份有BJ/SD/SX,那么就找到1990年对应这三个省份的员工数量(total_employ),然后加总得到。

[url=]QQ 图片 20200826180641.png[/url]

QQ图片20200826180641.png (88.94 KB)

表格

表格

关键词:Stata tata 变量值 Total Ploy

沙发
DΘstinyじò 发表于 2020-8-26 19:13:38
用dataex命令(ssc install  dataex)贴出示例数据,这样方便操作。

藤椅
chenguangyun 发表于 2020-8-27 09:07:58
DΘstinyじò 发表于 2020-8-26 19:13
用dataex命令(ssc install  dataex)贴出示例数据,这样方便操作。
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str9 province str2 abbr byte prov int year double total_employ byte(AH1 BJ1 GS1 GD1 HA1 HL1 HB1 JS1 JX1 LN1 SD1 SX1 SN1 SH1 SC1 YN1 ZJ1)
  4. "北京市" "BJ" 11 1990   627.1 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  5. "山西省" "SX" 14 1990    1304 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  6. "辽宁省" "LN" 21 1990  1897.3 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  7. "黑龙江" "HL" 23 1990  1427.3 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  8. "上海市" "SH" 31 1990     788 1 3 3 3 2 3 2 1 2 3 2 3 3 1 3 3 1
  9. "江苏省" "JS" 32 1990 4225.02 1 2 3 3 2 3 1 1 1 3 2 2 2 1 3 3 1
  10. "浙江省" "ZJ" 33 1990  2554.5 1 3 3 3 2 3 2 1 1 3 2 3 3 1 3 3 1
  11. "安徽省" "AH" 34 1990  2827.2 1 2 3 3 1 3 1 1 1 3 2 2 2 1 3 3 1
  12. "江西省" "JX" 36 1990    1817 1 3 3 2 2 3 1 1 1 3 2 3 2 2 3 3 1
  13. "山东省" "SD" 37 1990  4043.2 2 1 3 3 1 3 2 2 1 1 1 1 2 1 3 3 1
  14. "河南省" "HA" 41 1990    4086 1 2 2 3 1 3 1 1 1 3 1 1 1 2 2 3 2
  15. "湖北省" "HB" 42 1990  3040.4 1 3 3 2 1 3 1 1 1 3 2 2 2 2 2 3 2
  16. "广东省" "GD" 44 1990  3118.1 3 3 3 1 3 3 2 3 3 3 3 3 3 3 3 3 3
  17. "四川省" "SC" 51 1990  4265.2 3 3 2 3 2 3 2 3 3 3 3 3 2 3 1 2 3
  18. "云南省" "YN" 53 1990  1952.4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 1 3
  19. "陕西省" "SN" 61 1990    1576 2 2 2 3 1 3 2 2 2 3 2 2 1 3 2 3 3
  20. "甘肃省" "GS" 62 1990  1292.4 3 3 1 3 2 3 3 3 3 3 3 2 2 3 2 3 3
  21. "北京市" "BJ" 11 1991     634 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  22. "北京市" "BJ" 11 1992   649.3 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  23. "北京市" "BJ" 11 1993   627.8 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  24. "北京市" "BJ" 11 1994   664.3 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  25. "北京市" "BJ" 11 1995   665.3 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  26. "北京市" "BJ" 11 1996   660.2 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  27. "北京市" "BJ" 11 1997   655.8 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  28. "北京市" "BJ" 11 1998   622.2 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  29. "北京市" "BJ" 11 1999   618.6 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  30. "北京市" "BJ" 11 2000   619.3 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  31. "北京市" "BJ" 11 2001   628.9 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  32. "北京市" "BJ" 11 2002   679.2 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  33. "北京市" "BJ" 11 2003   703.3 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  34. "北京市" "BJ" 11 2004   854.1 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  35. "北京市" "BJ" 11 2005     878 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  36. "北京市" "BJ" 11 2006   919.7 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  37. "北京市" "BJ" 11 2007   942.7 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  38. "北京市" "BJ" 11 2008   980.9 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  39. "北京市" "BJ" 11 2009   998.3 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  40. "北京市" "BJ" 11 2010  1031.6 2 1 3 3 2 3 3 2 2 2 1 1 2 3 3 3 3
  41. "山西省" "SX" 14 1991  1332.2 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  42. "山西省" "SX" 14 1992  1363.8 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  43. "山西省" "SX" 14 1993  1383.6 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  44. "山西省" "SX" 14 1994  1403.8 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  45. "山西省" "SX" 14 1995  1424.5 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  46. "山西省" "SX" 14 1996  1441.2 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  47. "山西省" "SX" 14 1997  1439.4 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  48. "山西省" "SX" 14 1998 1398.32 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  49. "山西省" "SX" 14 1999  1402.2 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  50. "山西省" "SX" 14 2000  1392.4 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  51. "山西省" "SX" 14 2001    1413 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  52. "山西省" "SX" 14 2002  1417.3 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  53. "山西省" "SX" 14 2003  1469.5 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  54. "山西省" "SX" 14 2004    1475 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  55. "山西省" "SX" 14 2005  1500.2 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  56. "山西省" "SX" 14 2006  1561.2 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  57. "山西省" "SX" 14 2007    1550 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  58. "山西省" "SX" 14 2008  1614.1 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  59. "山西省" "SX" 14 2009  1630.6 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  60. "山西省" "SX" 14 2010  1685.9 2 1 2 3 1 3 2 2 3 3 1 1 2 3 3 3 3
  61. "辽宁省" "LN" 21 1991  1938.3 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  62. "辽宁省" "LN" 21 1992  1957.8 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  63. "辽宁省" "LN" 21 1993  2006.1 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  64. "辽宁省" "LN" 21 1994  2009.3 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  65. "辽宁省" "LN" 21 1995  2027.8 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  66. "辽宁省" "LN" 21 1996  2031.8 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  67. "辽宁省" "LN" 21 1997  1967.1 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  68. "辽宁省" "LN" 21 1998  1958.8 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  69. "辽宁省" "LN" 21 1999  1994.4 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  70. "辽宁省" "LN" 21 2000    2052 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  71. "辽宁省" "LN" 21 2001  2069.3 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  72. "辽宁省" "LN" 21 2002  2025.3 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  73. "辽宁省" "LN" 21 2003  2018.9 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  74. "辽宁省" "LN" 21 2004  2097.3 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  75. "辽宁省" "LN" 21 2005  2120.3 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  76. "辽宁省" "LN" 21 2006  2128.1 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  77. "辽宁省" "LN" 21 2007  2180.7 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  78. "辽宁省" "LN" 21 2008  2198.2 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  79. "辽宁省" "LN" 21 2009  2277.1 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  80. "辽宁省" "LN" 21 2010  2317.5 3 2 3 3 3 2 3 3 3 1 2 3 3 3 3 3 3
  81. "黑龙江" "HL" 23 1991  1472.7 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  82. "黑龙江" "HL" 23 1992  1474.8 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  83. "黑龙江" "HL" 23 1993  1481.1 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  84. "黑龙江" "HL" 23 1994    1504 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  85. "黑龙江" "HL" 23 1995  1552.1 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  86. "黑龙江" "HL" 23 1996  1557.9 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  87. "黑龙江" "HL" 23 1997  1647.5 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  88. "黑龙江" "HL" 23 1998    1700 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  89. "黑龙江" "HL" 23 1999  1654.1 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  90. "黑龙江" "HL" 23 2000  1600.8 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  91. "黑龙江" "HL" 23 2001  1592.6 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  92. "黑龙江" "HL" 23 2002  1588.6 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  93. "黑龙江" "HL" 23 2003  1623.3 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  94. "黑龙江" "HL" 23 2004    1681 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  95. "黑龙江" "HL" 23 2005  1748.9 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  96. "黑龙江" "HL" 23 2006    1784 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  97. "黑龙江" "HL" 23 2007  1827.6 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  98. "黑龙江" "HL" 23 2008  1852.4 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  99. "黑龙江" "HL" 23 2009    1877 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  100. "黑龙江" "HL" 23 2010    1932 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3
  101. "上海市" "SH" 31 1991  798.13 1 3 3 3 2 3 2 1 2 3 2 3 3 1 3 3 1
  102. "上海市" "SH" 31 1992  806.91 1 3 3 3 2 3 2 1 2 3 2 3 3 1 3 3 1
  103. "上海市" "SH" 31 1993   740.3 1 3 3 3 2 3 2 1 2 3 2 3 3 1 3 3 1
  104. end
复制代码

板凳
DΘstinyじò 发表于 2020-8-27 11:01:02
chenguangyun 发表于 2020-8-27 09:07
可尝试以下代码:(wanted1、wanted2、wanted3即为想要的结果,分别为对应年份相应省份1、2、3等级的total_employ变量之和)
  1. //先保存当前原始数据
  2. drop abbr province prov
  3. //没有gather命令需要运行下面代码安装
  4. //net install tidy.pkg,from(http://fmwww.bc.edU/RePEc/bocode/t/)
  5. gather AH1-ZJ1,variable(abbr)value(level)
  6. replace abbr=substr(abbr,1,2)

  7. bys year abbr level :egen wanted=sum(total_employ)
  8. drop total_employ
  9. duplicates drop year abbr level,force

  10. reshape wide wanted ,i(year abbr) j(level)
  11. //原始数据文件在当前路径下直接替换为数据文件名,不在的话引用数据文件的绝对位置
  12. merge 1:1 year abbr using 原始数据文件名,nogen

  13. sort year prov
  14. order province abbr prov year total_employ wanted*
复制代码

报纸
chenguangyun 发表于 2020-8-27 14:55:18
DΘstinyじò 发表于 2020-8-27 11:01
可尝试以下代码:(wanted1、wanted2、wanted3即为想要的结果,分别为对应年份相应省份1、2、3等级的to ...
做出来的数值,我硬算了几个,好像不对

地板
DΘstinyじò 发表于 2020-8-27 15:45:13
chenguangyun 发表于 2020-8-27 14:55
做出来的数值,我硬算了几个,好像不对
举个例子,哪一省份的算错了,我查查错误。
之前发现个问题,忘记说了,每一年的这个等级数据,行列排列顺序一致的时候,应该是一个对称矩阵吧?你看1990年在行上江西对北京是3,在列上北京对江西是2;类似的数据不一样的在1990年处还有几个,其他年份没看。从代码上的运行步骤上说,数据的这个问题,会导致您横向验证和纵向验证的结果就会不一样,(以北京为例),而代码计算是以列向数据为基础的。

7
呓久依旧 学生认证  发表于 2022-8-22 11:29:55
bys level: egen new_var = sum (total_employ)
已有 1 人评分热心指数 收起 理由
日新少年 + 2 精彩帖子

总评分: 热心指数 + 2   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-5 05:26