结束foreach循环_如何在STATA中使用foreach循环语句?

本文由江小白撰写,介绍了在Stata中如何使用foreach循环语句进行数据处理,包括foreach语句的格式、任务示例,如变量循环、局部宏观、全局宏观等应用场景,帮助用户更有效地进行数据操作。
摘要由CSDN通过智能技术生成

作者;江小白
邮箱:jiepost@qq.com

在使用Stata进行数据处理的过程中,如果遇到繁复的处理任务,通常都可以借助Stata中的循环命令帮助我们减轻工作负担,从而准确快速的完成数据的整理。

在Stata流程语句中经常使用的有三类循环语言:while循环 forvalue循环 foreach循环。其中前两个语句主要针对数值型循环,有机会我们找个例子再写一写;而今天介绍的foreach循环循环的对象可以是数值 变量 或者文件

foreach语句格式


     foreach lname {in|of listtype} list {
             commands referring to `lname'
     }
例如:
     foreach lname in any_list {
     foreach lname of local    lmacname   {
     foreach lname of global   gmacname   {
     foreach lname of varlist  varlist    {
     foreach lname of newlist  newvarlist {
     foreach lname of numlist  numlist    {

格式书写中有几点需要注意:括号的使用必须符合示例格式的要求,第一个括号要出现在foreach的同一行,而且执行命令不要写在第一个括号后面,最后的结束括号必须单独成行。

foreach 任务示例

如上格式所述,foreach循环对象多样,下面通过几个示例语句来展示其功能。

循环append合并

  合并当前数据库中的多个文件
  foreach file in this.dta that.dta theother.dta {
          append using "`file'"
  }

循环局部宏

 **定义一个局部宏,然后对于局部宏执行循环命令
 **这里展示displaylocal life "春花 秋月 夏风 冬雪"
   foreach x of local life {
           display "`x'"
   }

循环全局宏

**定义一个全局宏,然后对于全局宏执行循环命令
**这里展示display
   global start "天枢 天璇 天玑 天权 玉衡 开阳 摇光"
   foreach y of global start {
          display "`y'"
   }

变量循环

**调用示例数据,对于所有变量都执行sum操作
 sysuse auto,clear 
 foreach v of varlist make-foreign { 
 sum `v'
    }

循环生成变量

**生成100个变量,且每个变量都是均匀分布的随机数
 clearset obs 100 
 foreach v of newlist a1-a100 { 
  gen `v'=uniform() 
   } 

数值循环

**对于数值进行循环
**示例表示的数列是1 ,4到8,13到21其中步长为2,103
**这里展示display
 foreach num of numlist 1 4/8 13(2)21 103 {
                display `num'
        }
***数值循环时如果对于等距数值进行循环一般不用foreach
**可以直接用forvalues
   例如 
 forvalues x = 1/1000 {
        ...
        ...
        }
**foreach必须存储元素列表,而forvalue通过计算一次获取一个元素

以上主要介绍foreach循环的使用,熟知上述的几种用法,可以在命令中变换使用想要执行的循环操作,都可以轻松简便的完成Stata数据处理的工作。

更多的Stata相关知识可以关注Stata中文社区~

9abb07291df2a3aef1423f951ab1c92c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值