楼主: SU==
5313 5

[编程问题求助] bysort的变量出现operator invalid错误是为什么? [推广有奖]

  • 4关注
  • 0粉丝

已卖:2份资源

硕士生

36%

还不是VIP/贵宾

-

威望
0
论坛币
602 个
通用积分
5.1143
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1145 点
帖子
56
精华
0
在线时间
211 小时
注册时间
2019-11-11
最后登录
2025-11-8

楼主
SU== 发表于 2021-3-14 10:12:15 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

我想将id分组后,求每个id下所有年份的patent的数量总和,命令如下。但是出现operator invalid错误,想请教一下是哪里出了问题?
  1. . bys id(year): egen inno=sum(patent)
  2. id:  operator invalid
  3. r(198);
复制代码
数据样本如下:
  1. [CODE]
  2. * Example generated by -dataex-. To install: ssc install dataex
  3. clear
  4. input long id int year float patent
  5. 1 2011     0
  6. 1 2012     0
  7. 1 2013     0
  8. 1 2014     0
  9. 1 2015     0
  10. 2 2011     0
  11. 2 2012     0
  12. 2 2013     0
  13. 2 2014     0
  14. 2 2015     0
  15. 3 2011    39
  16. 3 2012    52
  17. 3 2013    73
  18. 3 2014    95
  19. 3 2015   142
  20. 4 2011  2201
  21. 4 2012  2021
  22. 4 2013  1290
  23. 4 2014   801
  24. 4 2015   820
  25. 5 2011     0
  26. 5 2012     0
  27. 5 2013     0
  28. 5 2014     0
  29. 5 2015     0
  30. 6 2011     0
  31. 6 2012     0
  32. 6 2013     0
  33. 6 2014     0
  34. 6 2015     0
  35. 7 2011     0
  36. 7 2012     0
  37. 7 2013     0
  38. 7 2014     0
  39. 7 2015     0
  40. 8 2011    74
  41. 8 2012   106
  42. 8 2013   119
  43. 8 2014   136
  44. 8 2015   161
  45. 9 2011     0
  46. 9 2012     0
  47. 9 2013     0
  48. 9 2014     0
  49. 9 2015     0
  50. 10 2011    78
  51. 10 2012   109
  52. 10 2013   127
  53. 10 2014   164
  54. 10 2015   186
  55. 11 2011   511
  56. 11 2012   701
  57. 11 2013   975
  58. 11 2014  1215
  59. 11 2015  1357
  60. 12 2011     0
  61. 12 2012     0
  62. 12 2013     0
  63. 12 2014     0
  64. 12 2015     0
  65. 13 2011     0
  66. 13 2012     0
  67. 13 2013     0
  68. 13 2014     0
  69. 13 2015     0
  70. 14 2011     0
  71. 14 2012     0
  72. 14 2013     0
  73. 14 2014     0
  74. 14 2015     0
  75. 15 2011    84
  76. 15 2012   117
  77. 15 2013   161
  78. 15 2014   240
  79. 15 2015   352
  80. 16 2011   270
  81. 16 2012   260
  82. 16 2013   248
  83. 16 2014   171
  84. 16 2015   142
  85. 17 2011     0
  86. 17 2012     0
  87. 17 2013     0
  88. 17 2014     0
  89. 17 2015     0
  90. 18 2011     2
  91. 18 2012     2
  92. 18 2013     2
  93. 18 2014     2
  94. 18 2015     2
  95. 19 2011 10660
  96. 19 2012 13740
  97. 19 2013 15503
  98. 19 2014 17535
  99. 19 2015 19439
  100. 20 2011   100
  101. 20 2012   112
  102. 20 2013   128
  103. 20 2014   126
  104. 20 2015   141
  105. end
复制代码

[/code]




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:operator invalid Perato bysort Valid

回帖推荐

梧桐煜 发表于2楼  查看完整内容

试试这个:

沙发
梧桐煜 发表于 2021-3-14 10:31:08
试试这个:
  1. bys id: egen inno=sum(patent)
复制代码

藤椅
SU== 发表于 2021-3-14 10:45:52
没想到为什么,不过找了个笨方法,仅供路人参考。
先拷贝一份备份,在备份里做如下:
  1. collapse(sum) inno=patent, by(id)
复制代码

然后再在主文件master文件里和备份文件using文件m:1匹配。

板凳
SU== 发表于 2021-3-14 10:47:44
梧桐煜 发表于 2021-3-14 10:31
试试这个:
谢谢回复!刚看到,有用的:)

报纸
蓝色 发表于 2021-3-14 17:11:02
id和后面的括号直接是有空格的,不能连在一起。
  1. bys id    (year) : egen inno=sum(patent)
复制代码

地板
SU== 发表于 2021-3-14 21:34:53
蓝色 发表于 2021-3-14 17:11
id和后面的括号直接是有空格的,不能连在一起。
原来如此哈哈,谢谢您!

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

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