Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Question about loops

    Hello everyone!
    I was wondering if anybody could help me remember how to create a loop in stata.
    I am trying to run the following command:

    gen tipo_disciplina=.
    replace tipo_disciplina= "calculo" if id_disciplina=="2000MAT0111"
    replace tipo_disciplina= "calculo" if id_disciplina=="2001MAT0111"
    replace tipo_disciplina= "calculo" if id_disciplina=="2002MAT0111"
    replace tipo_disciplina= "calculo" if id_disciplina=="2003MAT0111"
    replace tipo_disciplina= "calculo" if id_disciplina=="2004MAT0111"
    replace tipo_disciplina= "calculo" if id_disciplina=="2005MAT0111"
    replace tipo_disciplina= "calculo" if id_disciplina=="2006MAT0146"
    replace tipo_disciplina= "calculo" if id_disciplina=="2007MAT0146"
    replace tipo_disciplina= "calculo" if id_disciplina=="2008MAT0146"
    replace tipo_disciplina= "calculo" if id_disciplina=="2009MAT0146"
    replace tipo_disciplina= "calculo" if id_disciplina=="2010MAT0146"
    replace tipo_disciplina= "calculo" if id_disciplina=="2011MAT0146"
    replace tipo_disciplina= "calculo" if id_disciplina=="2012MAT0146"
    replace tipo_disciplina= "calculo" if id_disciplina=="2000MAT0121"
    replace tipo_disciplina= "calculo" if id_disciplina=="2001MAT0121"
    replace tipo_disciplina= "calculo" if id_disciplina=="2002MAT0121"
    replace tipo_disciplina= "calculo" if id_disciplina=="2003MAT0121"
    replace tipo_disciplina= "calculo" if id_disciplina=="2004MAT0121"
    replace tipo_disciplina= "calculo" if id_disciplina=="2005MAT0121"
    replace tipo_disciplina= "calculo" if id_disciplina=="2006MAT0147"
    replace tipo_disciplina= "calculo" if id_disciplina=="2007MAT0147"
    replace tipo_disciplina= "calculo" if id_disciplina=="2008MAT0147"
    replace tipo_disciplina= "calculo" if id_disciplina=="2009MAT0147"
    replace tipo_disciplina= "calculo" if id_disciplina=="2010MAT0147"
    replace tipo_disciplina= "calculo" if id_disciplina=="2011MAT0147"
    replace tipo_disciplina= "calculo" if id_disciplina=="2012MAT0147"

    I know there is someway to make it more efficient by creating a loop but I am having problems with the codes.

    Thank you in advance!
    Last edited by Luiza Martins; 08 Feb 2019, 05:53.

  • #2
    Code:
    *some sample data:
    clear
    input str11 id_disciplina
    "2000MAT0111"
    "2001MAT0111"
    "2002MAT0111"
    "2003MAT0111"
    "2004MAT0111"
    "2005MAT0111"
    "2006MAT0146"
    "2007MAT0146"
    "2008MAT0146"
    "2009MAT0146"
    "2010MAT0146"
    "2011MAT0146"
    "2012MAT0146"
    "2000MAT0121"
    "2001MAT0121"
    "2002MAT0121"
    "2003MAT0121"
    "2004MAT0121"
    "2005MAT0121"
    "2006MAT0147"
    "2007MAT0147"
    "2008MAT0147"
    "2009MAT0147"
    "2010MAT0147"
    "2011MAT0147"
    "2012MAT0147"
    end
    gen tipo_disciplina=1234
    
    foreach year of numlist 2000/2005{
        foreach no in 0111 0121{
            replace tipo_disciplina=. if id_disciplina=="`year'MAT`no'"
        }
    }
    
    foreach year of numlist 2006/2012{
        foreach no in 0146 0147{
            replace tipo_disciplina=. if id_disciplina=="`year'MAT`no'"
        }
    }

    Comment

    Working...
    X