У меня есть набор данных, который содержит -1, который совпадает с отсутствующим, который я хотел бы заменить ранее известным, и который не найден с известным заранее.По группам V1 и V2
Пример:
data test;
input V1 $ V2 $ V3 $;
infile datalines delimiter=',';
datalines;
A,X,AA0
A,X,-1
A,X,AA0
A,Y,-1
A,Y,BB2
B,X,-1
B,X,-1
B,X,CC1
B,Y,-1
B,Y,-1
;
После первого запуска (заполнение)
V1 V2 V3
1 A X AA0
2 A X AA0
3 A X AA0
4 A Y -1
5 A Y BB2
6 B X -1
7 B X -1
8 B X CC1
9 B Y -1
10 B Y -1
После второго запуска (заполнение):
V1 V2 V3
1 A X AA0
2 A X AA0
3 A X AA0
4 A Y BB2
5 A Y BB2
6 B X CC1
7 B X CC1
8 B X CC1
9 B Y NA
10 B Y NA
Я обнаружил, что есть похожий вопрос здесь
Однако я не получаю желаемого результата при замене '.'для '-1' и замененных значений, например, AA0 становится AA.
Это моя попытка:
proc sort data=test;
by V1
V2;
run;
data want;
set test;
by V1 V2;
retain new_var ('-1');
if not last.V1 and V3 ne '-1' then new_var=V3;
else if V3 = '-1' then V3 = new_var;
if last.V1 then new_var = '-1';
/* drop year_tmp; */
run;