Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.

# re: st: How can I replace missing values with the variable's first nonmissing value?

 From "Airey, David C" To "statalist@hsphsun2.harvard.edu" Subject re: st: How can I replace missing values with the variable's first nonmissing value? Date Sat, 11 Aug 2012 15:04:09 -0500

```.

> 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/
```