楼主: thumper
4050 2

[其他] stata嵌套循环里如何只终止子循环而不影响到母循环 [推广有奖]

  • 0关注
  • 0粉丝

本科生

40%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
0.0071
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
123 点
帖子
60
精华
0
在线时间
45 小时
注册时间
2009-8-30
最后登录
2013-11-20

楼主
thumper 发表于 2011-6-24 17:13:32 |AI写论文
5论坛币
在嵌套程序中用了continue,break,发现整个循环都终止了,而我的目的只是终止其中的子循环。。。新手求解

local x1
local x2
local z1
local z2
foreach v of varlist v2-v31 {
forvalues i=1/300{
if `v'[`i']!=.{
local x1=`v'[`i'+20]
local x2=`v'[`i'+272]
replace `v'=`x1' in 500
replace `v'=`x2' in 501
display `x1'
display `x2'
continue,break}   //此处就把foreach 的循环终止了。。。而我只想终止forvalues的循环
}
}

最佳答案

sungmoo 查看完整内容

括号的位置。
关键词:Stata tata forvalues continue forvalue

沙发
sungmoo 发表于 2011-6-24 17:13:33
thumper 发表于 2011-6-24 17:13 在嵌套程序中用了continue,break,发现整个循环都终止了,而我的目的只是终止其中的子循环
foreach v of var v2-v31 {
forv i=1/300{
if `v'[`i']<.{
replace `v'=`v'[`i'+20] in 500
replace `v'=`v'[`i'+272] in 501
di `x1' "    " `x2'
continue
}
}
}
括号的位置。

藤椅
sungmoo 发表于 2011-6-24 18:13:32
thumper 发表于 2011-6-24 17:13 在嵌套程序中用了continue,break,发现整个循环都终止了,而我的目的只是终止其中的子循环。。。新手求解
local x1
local x2
local z1
local z2
这几步是不必要的。stata默认未明确赋值的macro为空串。

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

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