Я пытаюсь создать массив строк и хочу вставить в него значение, если оно еще не существует в массиве.
Я где-то читал, что мы можем использовать оператор IN с Array,Итак, закодировал это следующим образом:
DATA WANT;
SET HAVE;
BY ID;
ARRAY R_PROS_SCRN_ID {2} $4. R_PROS_SCRN_ID_1 - R_PROS_SCRN_ID_2;
RETAIN R_PROS_SCRN_ID_1 - R_PROS_SCRN_ID_2;
IF NOT PROS_SCRN_ID IN R_PROS_SCRN_ID THEN DO;
DO I=1 to 2 ;
IF MISSING( R_PROS_SCRN_ID{i}) THEN DO;
R_PROS_SCRN_ID{i} = PROS_SCRN_ID;
LEAVE;
END;
END;
END;
IF LAST.ID THEN OUTPUT;
RUN;
В массиве R_PROS_SCRN_ID я хочу только уникальные значения из поля PROS_SCRN_ID.
Это ошибка выведения:
NOTE: Invalid numeric data, PROS_SCRN_ID='MED' , at line 17352 column 201.
Я думаю, это потому, что я не инициализировал массив до сравнения, и поэтому он рассматривает его как числовой массив.Но я указал формат как 4 доллара.Почему выдает ошибку?
Кроме того, я не уверен, что это лучший способ получить уникальные значения в массиве.Есть ли лучший способ реализовать это?