楼主: 葫芦娃大王
1633 8

[编程问题求助] 请问如何设置bins的虚拟变量?我用的循环语句总是出问题 [推广有奖]

回帖奖励 16 个论坛币 回复本帖可获得 2 个论坛币奖励! 每人限 1 次
  • 9关注
  • 27粉丝

已卖:32份资源

学科带头人

8%

还不是VIP/贵宾

-

威望
0
论坛币
-18578 个
通用积分
3095.9725
学术水平
54 点
热心指数
63 点
信用等级
36 点
经验
7464 点
帖子
1200
精华
0
在线时间
2149 小时
注册时间
2012-11-22
最后登录
2024-8-25

楼主
葫芦娃大王 学生认证  发表于 2019-2-1 07:55:18 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
比如在样本期间,气温的取值从-40到40摄氏度,我以5摄氏度为bins的宽度,这样设置了16个bins。然后想对每个bin设置虚拟变量,气温在这个特定区间则取值为1,否则为0。比如第一个bin的取值范围为-40至-35,设置虚拟变量temperature1=1 if temperature>-40 & temperature<-35。我用的循环语句一直出问题,麻烦大家看看是怎么回事,谢谢!部分数据如下:
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str33 CityName int(Date CityId) byte TemperH
  4. "七台河市" 19159 1 23
  5. "七台河市" 19161 1 24
  6. "七台河市" 19162 1 24
  7. "七台河市" 19163 1 25
  8. "七台河市" 19164 1 25
  9. "七台河市" 19165 1 25
  10. "七台河市" 19166 1 27
  11. "七台河市" 19168 1 31
  12. "七台河市" 19169 1 28
  13. "七台河市" 19170 1 30
  14. "七台河市" 19171 1 32
  15. "七台河市" 19172 1 33
  16. "七台河市" 19173 1 32
  17. "七台河市" 19174 1 22
  18. "七台河市" 19175 1 26
  19. "七台河市" 19176 1 24
  20. "七台河市" 19177 1 24
  21. "七台河市" 19178 1 23
  22. "七台河市" 19180 1 30
  23. "七台河市" 19181 1 32
  24. "七台河市" 19182 1 31
  25. "七台河市" 19184 1 29
  26. "七台河市" 19185 1 26
  27. "七台河市" 19186 1 21
  28. "七台河市" 19187 1 22
  29. "七台河市" 19188 1 25
  30. "七台河市" 19189 1 28
  31. "七台河市" 19190 1 31
  32. "七台河市" 19191 1 33
  33. "七台河市" 19192 1 34
  34. "七台河市" 19194 1 22
  35. "七台河市" 19195 1 23
  36. "七台河市" 19196 1 28
  37. "七台河市" 19201 1 28
  38. "七台河市" 19202 1 30
  39. "七台河市" 19203 1 22
  40. "七台河市" 19204 1 25
  41. "七台河市" 19205 1 24
  42. "七台河市" 19206 1 22
  43. "七台河市" 19207 1 25
  44. "七台河市" 19208 1 24
  45. "七台河市" 19209 1 27
  46. "七台河市" 19210 1 28
  47. "七台河市" 19211 1 31
  48. "七台河市" 19212 1 32
  49. "七台河市" 19213 1 33
  50. "七台河市" 19214 1 27
  51. "七台河市" 19215 1 27
  52. "七台河市" 19216 1 25
  53. "七台河市" 19217 1 24
  54. "七台河市" 19218 1 25
  55. "七台河市" 19219 1 27
  56. "七台河市" 19221 1 26
  57. "七台河市" 19222 1 30
  58. "七台河市" 19223 1 30
  59. "七台河市" 19224 1 25
  60. "七台河市" 19225 1 28
  61. "七台河市" 19226 1 23
  62. "七台河市" 19227 1 20
  63. "七台河市" 19228 1 26
  64. "七台河市" 19229 1 31
  65. "七台河市" 19230 1 29
  66. "七台河市" 19232 1 30
  67. "七台河市" 19233 1 31
  68. "七台河市" 19234 1 23
  69. "七台河市" 19235 1 26
  70. "七台河市" 19236 1 28
  71. "七台河市" 19237 1 27
  72. "七台河市" 19238 1 28
  73. "七台河市" 19239 1 28
  74. "七台河市" 19240 1 22
  75. "七台河市" 19241 1 19
  76. "七台河市" 19242 1 23
  77. "七台河市" 19243 1 24
  78. "七台河市" 19244 1 23
  79. "七台河市" 19247 1 25
  80. "七台河市" 19248 1 24
  81. "七台河市" 19251 1 21
  82. "七台河市" 19252 1 23
  83. "七台河市" 19253 1 19
  84. "七台河市" 19254 1 14
  85. "七台河市" 19255 1 20
  86. "七台河市" 19256 1 23
  87. "七台河市" 19257 1 26
  88. "七台河市" 19258 1 22
  89. "七台河市" 19259 1 18
  90. "七台河市" 19262 1 17
  91. "七台河市" 19263 1 18
  92. "七台河市" 19264 1 16
  93. "七台河市" 19265 1 16
  94. "七台河市" 19266 1 15
  95. "七台河市" 19267 1 17
  96. "七台河市" 19268 1 19
  97. "七台河市" 19269 1 20
  98. "七台河市" 19273 1 16
  99. "七台河市" 19277 1 10
  100. "七台河市" 19279 1 11
  101. "七台河市" 19280 1  9
  102. "七台河市" 19281 1  9
  103. "七台河市" 19282 1 10
  104. end
  105. format %td Date
复制代码


采用的命令如下:
  1. forvalues i=-41(5)44{
  2.     gen TemperH`i'=1 if TemperH>=`i' & TemperH<(`i'+5)
  3.     replace TemperH`i'=0 if TemperH`i'==.
  4. }
复制代码

在这个命令中,-41和44是根据气温的最小值和最大值得到的,列举出的样本中最小值和最大值与这个不一样。谢谢大家!
二维码

扫码加我 拉你入群

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

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

关键词:虚拟变量 bins bin ERAT Temp

磨刀不误砍柴工!

沙发
黃河泉 在职认证  发表于 2019-2-1 08:05:23
你若要问程序,永远附上相关资料;若附上资料,永远用 dataex 印出资料。
1.        先 ssc install dataex (并见说明),将原始 Stata 资料中具有”代表性”的一部分资料列出,以供有意回答者实验之用,并能提供具体操作指令。
2.        并请参考 http://www.jianshu.com/p/9870080fe769,  https://bbs.pinggu.org/thread-5048204-1-1.html, 与 https://bbs.pinggu.org/thread-5917273-1-1.html

藤椅
葫芦娃大王 学生认证  发表于 2019-2-1 08:22:50
黃河泉 发表于 2019-2-1 08:05
你若要问程序,永远附上相关资料;若附上资料,永远用 dataex 印出资料。
1.        先 ssc install dataex (并见 ...
黄老师,我附上了部分数据和我用的循环命令,循环命令一直显示错误,请您看看命令哪里写的有问题,万分感谢!

板凳
黃河泉 在职认证  发表于 2019-2-1 08:29:13

回帖奖励 +2 个论坛币

葫芦娃大王 发表于 2019-2-1 08:22
黄老师,我附上了部分数据和我用的循环命令,循环命令一直显示错误,请您看看命令哪里写的有问题,万分感 ...
类似 (请据以修改)
  1. recode TemperH (10/15=1) (16/20=2) (21/25=3)
复制代码

报纸
葫芦娃大王 学生认证  发表于 2019-2-1 08:43:32
黃河泉 发表于 2019-2-1 08:29
类似 (请据以修改)
黄老师,我不是想对不同的区间赋不同的值,是想对每一个区间都新生成一个虚拟变量,然后在这个区间的话,该虚拟变量赋值为1,否则为0

地板
黃河泉 在职认证  发表于 2019-2-1 08:48:32
葫芦娃大王 发表于 2019-2-1 08:43
黄老师,我不是想对不同的区间赋不同的值,是想对每一个区间都新生成一个虚拟变量,然后在这个区间的话, ...
OK,继续上面程序
  1. i.TemperH
复制代码
即是你要的。
已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
葫芦娃大王 + 10 + 20 + 5 + 3 + 2 精彩帖子

总评分: 经验 + 10  论坛币 + 20  学术水平 + 5  热心指数 + 3  信用等级 + 2   查看全部评分

7
葫芦娃大王 学生认证  发表于 2019-2-1 12:02:39
黃河泉 发表于 2019-2-1 08:48
OK,继续上面程序即是你要的。
谢谢黄老师的回复,这个方法确实最方便!谢谢!只是,我还是不清楚我的循环命令到底是哪里出了问题,不知道为何一直出错,还请黄老师点拨下,谢谢!

8
黃河泉 在职认证  发表于 2019-2-1 15:06:07
葫芦娃大王 发表于 2019-2-1 12:02
谢谢黄老师的回复,这个方法确实最方便!谢谢!只是,我还是不清楚我的循环命令到底是哪里出了问题,不知 ...
跟很多人不一样,在大部分时间,我对 foreach/forvalues 之问题没特别兴趣。

9
gewenhong66 发表于 2019-2-2 23:27:36

回帖奖励 +2 个论坛币

thank a lot

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

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