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: How can I replace missing values with the variable's first nonmissing value?
From
Nick Cox <[email protected]>
To
[email protected]
Subject
Re: st: How can I replace missing values with the variable's first nonmissing value?
Date
Sun, 12 Aug 2012 09:03:33 +0100
I only -replace-d the first block of missing values. To -replace- all
of them, use
... if missing(x)
Nick
On Sat, Aug 11, 2012 at 9:04 PM, Airey, David C
<[email protected]> wrote:
> .
>
>> A similar way to do it:
>>
>> gen obs = _n
>> su obs if !missing(x), meanonly
>> replace x = x[r(min)] if _n < r(min)
>
> What's missing in your solution? It doesn't
> work when I append to my code...
>
> -Dave
>
>
> clear
> set obs 100
> set seed 1967
> gen x = runiform()
> gen y = runiform()
> replace x = . if y > 0.8 // 20% missing
> drop y
>
> gen obs = _n
> su obs if !missing(x), meanonly
> replace x = x[r(min)] if _n < r(min)
>
> x obs
> 1. .1224991 1
> 2. .9317513 2
> 3. .268727 3
> 4. . 4
> 5. . 5
> 6. .3401332 6
> 7. .6752468 7
> 8. .3403953 8
> 9. .5833964 9
> 10. .3562438 10
> 11. .5706896 11
> 12. .2602532 12
> 13. .5183807 13
> 14. .2311059 14
> 15. .6327367 15
> 16. .8565149 16
> 17. .3864231 17
> 18. .2451925 18
> 19. .6647257 19
> 20. .3576449 20
>
> clear
> set obs 100
> set seed 1967
> gen x = runiform()
> gen y = runiform()
> replace x = . if y > 0.8 // 20% missing
> drop y
> gen notmissing = _n if !missing(x)
> egen r1 = min(notmissing)
> gen r2 = x[r1]
> gen x2 = x
> replace x2 = r2 if missing(x)
> drop notmissing r1 r2
>
> list in 1/20, clean
>
> x x2
> 1. .1224991 .1224991
> 2. .9317513 .9317513
> 3. .268727 .268727
> 4. . .1224991
> 5. . .1224991
> 6. .3401332 .3401332
> 7. .6752468 .6752468
> 8. .3403953 .3403953
> 9. .5833964 .5833964
> 10. .3562438 .3562438
> 11. .5706896 .5706896
> 12. .2602532 .2602532
> 13. .5183807 .5183807
> 14. .2311059 .2311059
> 15. .6327367 .6327367
> 16. .8565149 .8565149
> 17. .3864231 .3864231
> 18. .2451925 .2451925
> 19. .6647257 .6647257
> 20. .3576449 .3576449
>
>
>
> *
> * For searches and help try:
> * http://www.stata.com/help.cgi?search
> * http://www.stata.com/support/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/statalist/faq
* http://www.ats.ucla.edu/stat/stata/