Announcement

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

  • Using a fixed value of a variable and assinging it to other years

    Dear Statalist Users,


    I hope you are doing great.

    I observe 81 cities from 1990 to 2018. Each city has a unique identifier based on "plate" variable. For example city "Adana" has its identifier 1.

    I need to create a variable, let's say X, which will take "refugee_lead1"s only 2012 values for each unique city. For example, I want X to be -0.0234827. However, the tricky part is that I want to assign X to each cities' years 1999, 2000, ... , 2008. So, for example, for city Adana, X should be -0.0234827 for all years from 1999 to 2008.


    Thank you very much in advance.


    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input byte plate int child_birth_year str15 city float refugee_lead1
    1 1999 "Adana"     -.17585197
    1 2000 "Adana"     -.17585197
    1 2001 "Adana"     -.17585197
    1 2002 "Adana"     -.17585197
    1 2003 "Adana"     -.17585197
    1 2004 "Adana"     -.17585197
    1 2005 "Adana"     -.17585197
    1 2006 "Adana"     -.17585197
    1 2007 "Adana"     -.17585197
    1 2008 "Adana"     -.17585197
    1 2009 "Adana"     -.17585197
    1 2010 "Adana"     -.17585197
    1 2011 "Adana"     -.17585197
    1 2012 "Adana"    -.023482664
    1 2013 "Adana"      .30652675
    1 2014 "Adana"       .9005294
    1 2015 "Adana"      1.0030403
    1 2016 "Adana"       1.049462
    1 2017 "Adana"       1.339191
    1 2018 "Adana"     -.17585197
    2 1999 "Adiyaman"  -.17585197
    2 2000 "Adiyaman"  -.17585197
    2 2001 "Adiyaman"  -.17585197
    2 2002 "Adiyaman"  -.17585197
    2 2003 "Adiyaman"  -.17585197
    2 2004 "Adiyaman"  -.17585197
    2 2005 "Adiyaman"  -.17585197
    2 2006 "Adiyaman"  -.17585197
    2 2007 "Adiyaman"  -.17585197
    2 2008 "Adiyaman"  -.17585197
    2 2009 "Adiyaman"  -.17585197
    2 2010 "Adiyaman"  -.17585197
    2 2011 "Adiyaman"  -.17585197
    2 2012 "Adiyaman"   .10755357
    2 2013 "Adiyaman"    .7510749
    2 2014 "Adiyaman"    .4379744
    2 2015 "Adiyaman"    .5134343
    2 2016 "Adiyaman"    .5564089
    2 2017 "Adiyaman"    .6446755
    2 2018 "Adiyaman"  -.17585197
    3 1999 "Afyon"     -.17585197
    3 2000 "Afyon"     -.17585197
    3 2001 "Afyon"     -.17585197
    3 2002 "Afyon"     -.17585197
    3 2003 "Afyon"     -.17585197
    3 2004 "Afyon"     -.17585197
    3 2005 "Afyon"     -.17585197
    3 2006 "Afyon"     -.17585197
    3 2007 "Afyon"     -.17585197
    3 2008 "Afyon"     -.17585197
    3 2009 "Afyon"     -.17585197
    3 2010 "Afyon"     -.17585197
    3 2011 "Afyon"     -.17585197
    3 2012 "Afyon"     -.17585197
    3 2013 "Afyon"     -.16407438
    3 2014 "Afyon"     -.10893186
    3 2015 "Afyon"     -.07736831
    3 2016 "Afyon"     -.05967875
    3 2017 "Afyon"    -.035865184
    3 2018 "Afyon"     -.17585197
    4 1999 "Agri"      -.17585197
    4 2000 "Agri"      -.17585197
    4 2001 "Agri"      -.17585197
    4 2002 "Agri"      -.17585197
    4 2003 "Agri"      -.17585197
    4 2004 "Agri"      -.17585197
    4 2005 "Agri"      -.17585197
    4 2006 "Agri"      -.17585197
    4 2007 "Agri"      -.17585197
    4 2008 "Agri"      -.17585197
    4 2009 "Agri"      -.17585197
    4 2010 "Agri"      -.17585197
    4 2011 "Agri"      -.17585197
    4 2012 "Agri"      -.17585197
    4 2013 "Agri"      -.17282052
    4 2014 "Agri"      -.15172163
    4 2015 "Agri"      -.14987245
    4 2016 "Agri"      -.14529496
    4 2017 "Agri"      -.14141472
    4 2018 "Agri"      -.17585197
    5 1999 "Amasya"    -.17585197
    5 2000 "Amasya"    -.17585197
    5 2001 "Amasya"    -.17585197
    5 2002 "Amasya"    -.17585197
    5 2003 "Amasya"    -.17585197
    5 2004 "Amasya"    -.17585197
    5 2005 "Amasya"    -.17585197
    5 2006 "Amasya"    -.17585197
    5 2007 "Amasya"    -.17585197
    5 2008 "Amasya"    -.17585197
    5 2009 "Amasya"    -.17585197
    5 2010 "Amasya"    -.17585197
    5 2011 "Amasya"    -.17585197
    5 2012 "Amasya"    -.17585197
    5 2013 "Amasya"      -.170944
    5 2014 "Amasya"    -.16878453
    5 2015 "Amasya"    -.16520172
    5 2016 "Amasya"      -.156122
    5 2017 "Amasya"    -.14787666
    5 2018 "Amasya"    -.17585197
    end

  • #2
    Here are three ways to do it, and there are others. See https://journals.sagepub.com/doi/pdf...867X1101100210 for these and other tricks in this territory.

    Code:
    egen wanted1 = total(refugee_lead1 * (child_birth_year == 2012)), by(plate) 
    
    egen wanted2 = mean(cond(child_birth_year == 2012, refugee_lead1, .)), by(plate) 
    
    gen wanted3 = refugee_lead1 if child_birth_year == 2012 
    bysort plate (wanted3) : replace wanted3 = wanted3[1]

    Comment


    • #3
      Dear Nick Cox,

      Thank you very much for that! It actually worked!

      Comment

      Working...
      X