天天看点

Stata循环语句的运用——循环数值、变量、文件

数值循环

local j=0
while `j'<5{
scalar a=`j'^2
dis a
local j=`j'+1
}
           
scalar j=0
while j<5{
scalar a=j^2
dis a
scalar j=j+1
}
           
forvalues i=0/14{
dis `i'
}
           
forvalues i=0 (-2) -14{
dis `i'
}
           

变量循环

clear
foreach i of varlist var_1-var_N{
replace `i'="" if `i'=="n.a."
replace `i'=subinstr(`i', "," , "",.)
destring `i',replace
}
           

对文件进行循环

use 2001-2006,replace
local files "2007-2012 2013-2018"
foreach `v' of local files{
append using v
}
           
use balance1,replace
forva i=2/3{
append using balance`i'
}
           
clear
insheet using gov1.csv
forva i=2/3{
preserve
       clear
       insheet using gov`i'.csv
	   save gov`i',replace
restore
merge 1:1  stkcd accper using gov`i'
keep if _m==3
drop _m
}
           
clear
insheet using gov1.csv
foreach v in gov2 gov3{
preserve
   clear
   insheet using `v'.csv
   save `v',replace
restore
merge 1:1  stkcd accper using `v'
keep if _m==3
drop _m
}
           

继续阅读