“环环”入扣之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,clearforeach 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,clearlocal 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 allcd D:\mydataforeach file in female.dta male.dta {append using `file' /*纵向合并*/}list, sep(4)

foreach循环命令的介绍就结束啦~ 赞 (0)
