вот что у меня есть в качестве набора данных:
****************
* name * value *
* x * # *
* x * . *
* x * . *
* x * . *
* y * . *
* y * # *
* y * . *
* y * . *
* z * . *
* z * . *
* z * # *
* z * . *
* z * . *
* z * # *
****************
Что я пытаюсь сделать, так это сохранить числа (#) до конца строки каждого имени. Результат будет следующим:
****************
* name * value *
* x * # *
* x * # *
* x * # *
* x * # *
* y * . *
* y * # *
* y * # *
* y * # *
* z * . *
* z * . *
* z * # *
* z * # *
* z * # *
* z * # *
****************
. остается, потому что для этой точки нет данных. Мне просто нужно заполнить строки, в которых у меня есть данные.
До сих пор у меня был код, который выглядел так:
DATA test;
SET test;
retain _variable;
if not missing(variable) then _variable=variable;
else variable=_variable;
drop _variable;
RUN;
Это не работает, потому что # последнее значение x переносится на первое значение y. Я подумал об использовании функции do until last.variable. Но я не смог заставить его работать.
Пожалуйста помоги.