楼主: 17831124623
1930 9

[编程问题求助] stata两次循环语句的问题 [推广有奖]

  • 0关注
  • 0粉丝

小学生

85%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
65 点
帖子
7
精华
0
在线时间
9 小时
注册时间
2021-4-6
最后登录
2022-5-4

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
求助各位stata大神,这个题是要分别求每一年各省的教育不均衡情况,我设置的循环总是跑不对,还请大佬指点。以下是 我的数据和显示出错的地方。 微信图片_20210411135857.png 微信图片_20210411135324.png
二维码

扫码加我 拉你入群

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

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

关键词:Stata tata 循环语句 不均衡

微信图片_20210411135903.png (13.4 KB)

微信图片_20210411135903.png

沙发
songking 发表于 2021-4-12 14:47:14 |只看作者 |坛友微信交流群
给出示例数据

使用道具

藤椅
17831124623 发表于 2021-4-12 17:34:49 |只看作者 |坛友微信交流群
songking 发表于 2021-4-12 14:47
给出示例数据
这是示例数据,谢谢!

ex3.dta

738.93 KB

使用道具

板凳
DΘstinyじò 发表于 2021-4-13 00:07:58 |只看作者 |坛友微信交流群
  1. //方法一:
  2. //foreach  region of local 后面接一个暂元名称,具体help foreach
  3. use ex3.dta,clear
  4. local year=1999
  5. while `year' < 2012  {
  6.         local region0 ""安徽" "福建" "甘肃" "广东" "广西""
  7.         foreach region of local region0 {
  8.             inequal7 peredu if region=="`region'"
  9.                 return list
  10.         }
  11.         local year=`year'+1
  12. }
  13. //方法二:
  14. //foreach  region in  改为in的时候可以直接+原先的一长串值
  15. use ex3.dta,clear
  16. local year = 1999
  17. while `year' < 2012 {
  18.         foreach region in  "安徽" "福建" "甘肃" "广东" "广西" {
  19.             inequal7 peredu if region=="`region'"
  20.                 return list
  21.         }
  22.         local year=`year'+1
  23. }
  24. //方法三:
  25. //借助runby命令实现inequal7按年度地区分组
  26. //之前return list应该也是要看某一指标吧
  27. //可在自写程序中添加想要的返回值,不然按照之前的满屏幕找?
  28. use ex3.dta,clear
  29. cap program drop mypro
  30. program define mypro
  31.     inequal7 peredu
  32.         //添加需要的指标
  33.         gen ge2 =`r(ge2)'
  34. end
  35. runby mypro,by(year region)
复制代码

不是很了解inequal7这个命令,说得不准确的地方请谅解。(方法三个人理解)
另外,建议用dataex(ssc install dataex)命令贴出示例数据,代码也给出网页代码或者文字形式,而不是图片,这样操作起来方便。

使用道具

报纸
momingqimiao7 在职认证  学生认证  发表于 2021-4-13 09:21:34 |只看作者 |坛友微信交流群
  1. use ex3.dta,clear
  2. local year=1999
  3. while `year'<2012{
  4.         foreach region in 安徽  福建 甘肃 广东 广西 {
  5.                 inequal7 peredu if region=="`region'"
  6.                 return list
  7.         }
  8.         local year=`year'+1
  9. }
复制代码

使用道具

地板
17831124623 发表于 2021-4-14 11:00:14 |只看作者 |坛友微信交流群
DΘstinyじò 发表于 2021-4-13 00:07
不是很了解inequal7这个命令,说得不准确的地方请谅解。(方法三个人理解)
另外,建议用dataex(ssc in ...
您好,我想再请教一下,运行您改正后的代码后只显示运行的代码,并没有出结果,也没有显示红色的错误,请问您知道还可以怎么改吗

使用道具

7
DΘstinyじò 发表于 2021-4-14 20:26:59 来自手机 |只看作者 |坛友微信交流群
17831124623 发表于 2021-4-14 11:00
您好,我想再请教一下,运行您改正后的代码后只显示运行的代码,并没有出结果,也没有显示红色的错误,请 ...
您说的哪部分的代码?之前我下载了数据,运行是出结果的。

使用道具

8
dlut123 发表于 2021-4-15 00:30:18 |只看作者 |坛友微信交流群
17831124623 发表于 2021-4-14 11:00
您好,我想再请教一下,运行您改正后的代码后只显示运行的代码,并没有出结果,也没有显示红色的错误,请 ...
直接选中代码复制、粘贴到do文档内;不要点击 “复制代码” 的方式复制代码

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 14:19