如何通过循环简化生成多份dta文件的重复Stata脚本
完全可以通过Stata的foreach循环简化重复代码,你只需要把三个任务的差异化参数整理到循环遍历列表中,重复的处理逻辑统一放在循环体里即可,简化后的代码和原代码输出结果完全一致:
* 定义公共路径,后续调整路径仅需修改此处 local raw_data "C:\ICD9study.dta" local save_dir "C:\Users\Desktop\temp\" * 循环参数规则:变量名 对应dxcode值 date字段聚合用的统计函数 foreach task in "menin 32290 max" "Bmenin 32090 min" "nonBmenin 04790 max" { * 拆分当前任务的三个参数 gettoken var_name task : task gettoken dxcode stat_method : task * 执行原逻辑 use "`raw_data'", clear keep if dxcode == "`dxcode'" collapse (`stat_method') date, by(bene_id) gen `var_name' = 1 save "`save_dir'`var_name'.dta", replace }
如果后续需要新增同类变量,只需要在foreach后的参数列表里按照格式新增对应的参数组即可,不需要再重复复制整段处理代码。
内容的提问来源于stack exchange,提问作者bkGeog
相关产品推荐
相关产品推荐

