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
Roberto Ferrer <[email protected]>
To
Stata Help <[email protected]>
Subject
Re: st: Replacing values
Date
Tue, 9 Jul 2013 23:43:37 +0100
Thanks Nick.
The second solution worked.
The first does not because it adds up the values of pop_region by
state and district. Substituting total() for min(), max(), mean(),
etc. works since the values involved are constants:
egen pop2005 = min(pop_region / (year == 2005)), by(state district)
(Trying to get my hands on the reference you gave.)
Thanks again.
On Tue, Jul 9, 2013 at 10:32 PM, Nick Cox <[email protected]> wrote:
> 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/
*
* 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/