楼主: Kristy0818
8232 14

[数据管理求助] stata中一个变量值如何添加多个另一个变量的值 [推广有奖]

11
黃河泉 在职认证  发表于 2016-11-27 14:57:59
Kristy0818 发表于 2016-11-27 13:01
我想再问一下,具体数据如下
_A_Stkcd     Province     上市年份
000001          深圳          1991 ...
请试试
  1. clear
  2. input _A_Stkcd str10 Province year
  3. 000001         深圳           1991
  4. 000002         上海           1993
  5. 000003         广州           1992
  6. 000004         江西           1992
  7. end

  8. expand 2000 - year + 1
  9. sort _A_Stkcd year
  10. bysort _A_Stkcd year: replace year = year[_n-1]+1 if _n > 1
复制代码
其结果为
  1. . list, sep(0)

  2.      +----------------------------+
  3.      | _A_Stkcd   Province   year |
  4.      |----------------------------|
  5.   1. |        1       深圳   1991 |
  6.   2. |        1       深圳   1992 |
  7.   3. |        1       深圳   1993 |
  8.   4. |        1       深圳   1994 |
  9.   5. |        1       深圳   1995 |
  10.   6. |        1       深圳   1996 |
  11.   7. |        1       深圳   1997 |
  12.   8. |        1       深圳   1998 |
  13.   9. |        1       深圳   1999 |
  14. 10. |        1       深圳   2000 |
  15. 11. |        2       上海   1993 |
  16. 12. |        2       上海   1994 |
  17. 13. |        2       上海   1995 |
  18. 14. |        2       上海   1996 |
  19. 15. |        2       上海   1997 |
  20. 16. |        2       上海   1998 |
  21. 17. |        2       上海   1999 |
  22. 18. |        2       上海   2000 |
  23. 19. |        3       广州   1992 |
  24. 20. |        3       广州   1993 |
  25. 21. |        3       广州   1994 |
  26. 22. |        3       广州   1995 |
  27. 23. |        3       广州   1996 |
  28. 24. |        3       广州   1997 |
  29. 25. |        3       广州   1998 |
  30. 26. |        3       广州   1999 |
  31. 27. |        3       广州   2000 |
  32. 28. |        4       江西   1992 |
  33. 29. |        4       江西   1993 |
  34. 30. |        4       江西   1994 |
  35. 31. |        4       江西   1995 |
  36. 32. |        4       江西   1996 |
  37. 33. |        4       江西   1997 |
  38. 34. |        4       江西   1998 |
  39. 35. |        4       江西   1999 |
  40. 36. |        4       江西   2000 |
  41.      +----------------------------+
复制代码

12
Kristy0818 发表于 2016-11-27 16:19:32
黃河泉 发表于 2016-11-27 14:57
请试试其结果为
data1.dta (157.42 KB)
为什么我在用我自己的数据运行expand 2000 - year + 1 这一步的时候总是显示type mismatch呢?

13
黃河泉 在职认证  发表于 2016-11-27 16:32:40
Kristy0818 发表于 2016-11-27 16:19
为什么我在用我自己的数据运行expand 2000 - year + 1 这一步的时候总是显示type mismatch呢?
你的 year 是 string variable, 不是 numerical variable! 所以:
  1. use data1.dta, clear

  2. destring year, replace

  3. expand 2016 - year + 1
  4. sort _Stkcd year
  5. bysort _Stkcd year: replace year = year[_n-1]+1 if _n > 1

  6. list, sep(0)
复制代码

14
Kristy0818 发表于 2016-11-27 16:52:36
黃河泉 发表于 2016-11-27 16:32
你的 year 是 string variable, 不是 numerical variable! 所以:
啊可以了。真是太谢谢您了!

15
黃河泉 在职认证  发表于 2016-11-27 16:54:25
Kristy0818 发表于 2016-11-27 16:52
啊可以了。真是太谢谢您了!
Great!

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-26 15:04