У меня есть данные ниже. Я хочу написать код sas proc sql, чтобы получить последние не пропущенные значения для каждого пациента (ptno).Как выполнить последнее наблюдение с использованием SAS PROC SQL
data sda;
input ptno visit weight;
format ptno z3. ;
cards;
1 1 122
1 2 123
1 3 .
1 4 .
2 1 156
2 2 .
2 3 70
2 4 .
3 1 60
3 2 .
3 3 112
3 4 .
;
run;
proc sql noprint;
create table new as
select ptno,visit,weight,
case
when weight = . then weight
else .
end as _weight_1
from sda
group by ptno,visit
order by ptno,visit;
quit;
Неверный код sql не работает.
Выходные данные желание, как это:
ptno visit weight
1 1 122
1 2 123
1 3 123
1 4 123
2 1 156
2 2 .
2 3 70
2 4 70
3 1 60
3 2 .
3 3 112
3 4 112
Это проще в шаге данных с помощью 'retain', чем в родной' прок sql'. –
Создание [tag: locf], поскольку это довольно большая группа проблем, которые мы получаем здесь. Пожалуйста, не стесняйтесь создавать теги wiki, если кто-то хочет - иначе я буду, когда у меня будет время. – Joe
@joe, огромное спасибо! – johnww