Stata中的循环有三类:
- while循环
- foreach循环
- forvalues循环
其中,foreach和forvalues都可以看作是while循环的变种。两者的区别在于foreach跟的对象可以是宏、变量名和文件名等,而forvalues跟的必须是数字。
先介绍while循环
while exp {
stata_commands
}
Braces must be specified with while, and
- the open brace must appear on the same line as while;
- nothing may follow the open brace, except, of course, comments; the
first command to be executed must appear on a new line;- the close brace must appear on a line by itself.
while循环的逻辑是:
- 判断 expression 的真假
- 如果expression 取值为真,则执行大括号内的命令
- 执行完一轮后再判断expression 的真假
- 如果expression 取值为真,则执行大括号内的命令
- ......
- 直到expression 取值为假为止
在具体应用时,while循环可以嵌套在其他循环中。
*单循环
. local j = 1
.
. while `j' < 10{
2. disp `j'
3. local j = `j'+1
4. }
1
2
3
4
5
6
7
8
9
*嵌套循环
. local i = 1
. while `i' <= 5{
2. local j = 1
3. while `j' < `i'{
4. disp "`j' 小于 `i'"
5. local j = `j' + 1
6. }
7. local i = `i' + 1
8. }
1 小于 2
1 小于 3
2 小于 3
1 小于 4
2 小于 4
3 小于 4
1 小于 5
2 小于 5
3 小于 5
4 小于 5
参考资料:
【爬虫俱乐部】精通Stata之数据整理
网友评论