У меня есть набор данных с некоторыми пропущенными значениями, и я хотел бы заменить эти пропущенные значения следующим не пропущенным значением ИЛИ, если значение встречается в последней переменной, то на предыдущее значение.
Например, у меня есть данные:
x var1 var2 var3 var4
e1 1 2 3 4
e2 . . 5 7
e3 5 8 . .
e4 2 3 1 9
Eg of data that I want:
x var1 var2 var3 var4
e1 1 2 3 4
e2 **5****5** 5 7
e3 5 8 **8** **8**
e4 2 3 1 9
Я попробовал следующий код:
set have;
array t(*) var1--var4;
do _n_=1 to dim(t);
if t(_n_)=. then t(_n_)=coalesce(of t(*));
end;
run;```
However, this only replaces the missing value with the following one ie, if the missing value occurs in the var4 then it takes the value from var1 of that row (e3) instead of var2 from row e3.