Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: Replacing values


From   Nick Cox <[email protected]>
To   "[email protected]" <[email protected]>
Subject   Re: st: Replacing values
Date   Tue, 9 Jul 2013 22:32:34 +0100

egen pop2005 = total(pop_region / (year == 2005)), by(state district)
replace pop_region = pop2005 if missing(pop_region)

In your example, this works

bysort state district (year) : replace pop_region = pop_region[_N]

For a review of technique see
http://www.stata-journal.com/article.html?article=dm0055
Nick
[email protected]


On 9 July 2013 22:12, Roberto Ferrer <[email protected]> wrote:
> For every possible year in the data, I want to replace the missing
> values of the variable pop_region using the corresponding value of
> variables state and district of year 2005. So the first value of
> pop_region in the example
> should be 25, the second 25, ..., the sixth 50, the eighth 62, etc.
>
> year  state  district  st_pop  pop_region
> 1995   a         1           100         .
> 1995   a         2           100         .
> 1995   a         2           100         .
> 1995   a         2           100         .
> 1995   a         2           100         .
> 1995   a         3           100         .
> 1995   a         3           100         .
> 1995   b         1           200         .
> --------------------------------------------------------
> 2005   a         1           100         25
> 2005   a         2           100         25
> 2005   a         3           100         50
> 2005   a         3           100         50
> 2005   b         1           200         62
> 2005   b         1           200         62
> 2005   b         1           200         62
> 2005   b         1           200         62
>
> I tried this (and other stuff) which seems too involved for the task
> and doesn't work of course:
>
> levelsof year, local(lyear)
> levelsof state, local(lstate)
> levelsof district, local(ldistrict)
>
> foreach y of local lyear {
>     foreach s of local lstate {
>         foreach r of local ldistrict {
>              local reval = pop_region if yearobs==2005 & state==`s' &
> district==`r'
>              replace pop_region = `reval' if state == `s' & district == `r'
>         }
>     }
> }
>
> Thanks.
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/faqs/resources/statalist-faq/
> *   http://www.ats.ucla.edu/stat/stata/
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index