楼主: liutian0302
4129 6

[编程问题求助] 循环语句和IF 条件语句求助 [推广有奖]

  • 0关注
  • 10粉丝

已卖:19份资源

本科生

23%

还不是VIP/贵宾

-

威望
0
论坛币
3390 个
通用积分
6.9868
学术水平
20 点
热心指数
25 点
信用等级
10 点
经验
4959 点
帖子
40
精华
0
在线时间
66 小时
注册时间
2011-11-16
最后登录
2024-9-26

楼主
liutian0302 发表于 2018-10-19 21:56:36 |AI写论文
3论坛币
各位大神好,第一次用到循环语句,发现措手不及,求指点。
我的目的是这样的:我的县、镇和村都是从1开始编码的,且每个县(镇)对应的镇(村)的数量可能不同,比如镇1可能有4个村,编码1到4,而镇2可能有7个村,编码1到7。我现在想把每个村的全村农户的use1这个变量的值取平均值,并把值赋给该村的每个农户。
我现在写的基础语句是这样的:
gen use1mean=.
local i=1
while `i'<=6{
     local j=1
         while `j'<=3{
              local k=1
                  while `k'<=3{
                       if county==`i' {
                                if township==`j' {
                                    if village == `k'{
                                mean use1
                                replace use1mean=e(cmd)
                                        }
                    }                          
                          
                            }
                           local k=`k'+1
                           }
                local j= `j'+1
                }
local i=`i'+1
}

问题1:这个code现在跑完了之后既不输出结果,也不报错,不知道怎么改了,求指点。
问题2:以上语句只是尝试的基础版,未考虑镇、村数量不同问题,还请大神一并指点。

跪谢!


最佳答案

黃河泉 查看完整内容

如同楼上建议,
关键词:第一次 平均值

沙发
黃河泉 在职认证  发表于 2018-10-19 21:56:37
如同楼上建议,
  1. bysort county township village: egen use1mean = mean(use1)
复制代码

藤椅
qiangli 发表于 2018-10-20 06:38:45 来自手机
bysort county township village: egen vmean=mean(use1)

没有必要循环

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

报纸
liutian0302 发表于 2018-10-20 10:02:30
qiangli 发表于 2018-10-20 06:38
bysort county township village: vmean=mean(use1)

没有必要循环
谢谢大神!看来是我想复杂了。。。您建议的命令跑出来显示unrecognized command:  vmean,用了三楼大神的建议就跑出来了!依然非常非常感谢!

地板
liutian0302 发表于 2018-10-20 10:03:21
黃河泉 发表于 2018-10-20 07:18
如同楼上建议,
谢谢大神建议!妥妥解决了!棒棒的!

7
qiangli 发表于 2018-10-20 10:21:35 来自手机
liutian0302 发表于 2018-10-20 10:02
谢谢大神!看来是我想复杂了。。。您建议的命令跑出来显示unrecognized command:  vmean,用了三楼大神的 ...
漏了egen

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

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