“环环”入扣之foreach命令
while
循环、foreach
循环以及forvalues
循环。其中,foreach
循环和forvalues
循环均可以看做是while
循环的衍生。但是相较于forvalues
命令,foreach
命令更加灵活。二者的区别在于forvalues
循环的对象必须是数字,而foreach
循环的对象可以是变量、局部宏以及文件等。接下来,小编将会和大家一起学习一下foreach
命令的具体用法。一、命令语法
foreach
命令的语法格式如下:foreach lname {in|of listtype} list { commands referring to `lname'}
二、实例操作
第一种:变量循环
foreach
命令对数据集里面的 price、weight、length三个变量进行遍历循环和对数转换,生成三个新的变量并添加变量标签。sysuse auto,clear
foreach v of varlist price weight length {
gen ln_`v' = ln(`v') /*生成新的变量 ln_`v',该变量是对原始变量的对数转换*/
label variable ln_`v' "ln(`v')" /*为新变量添加标签*/
}
list
第二种:局部宏循环
foreach
命令对vars中的元素进行遍历循环并生成新的变量,然后通过label
选项为新变量添加标签。sysuse auto,clear
local vars price weight length /*将三个进行遍历循环的变量存储在vars中*/
foreach v of local vars {
gen `v'_1 = `v'/2 /*生成新的变量`v'_1,该变量是原始变量的二分之一*/
label variable `v'_1 "`v'/2"
}
list
第三种:数字循环
foreach num of numlist 1 4/8 13(2)21 103 {
display `num'
}
第四种:文件循环
foreach
循环和append
命令将两个数据文件进行纵向合并。clear all
cd D:\mydata
foreach file in female.dta male.dta {
append using `file' /*纵向合并*/
}
list, sep(4)
foreach
循环命令的介绍就结束啦~ 赞 (0)