Я придумал решение для макроса:
%MACRO var_list_char (var_prefix, n);
%LOCAL i ;
%DO i = 1 %TO &n;
&var_prefix&i$
%END;
%MEND;
DATA TestDataset;
INPUT %var_list_char (a, 3);
DATALINES;
A B C
;
RUN;
Хотел бы я найти способ сделать это без макросов - я буду копаться немного и обновлю этот пост, если найду больше. Между тем, вышеуказанный подход определенно сработает.
ОБНОВЛЕНИЕ 1 : Решение @ carolinajay65, приведенное выше, является правильным немакро-подходом.
ОБНОВЛЕНИЕ 2 : Я нашел другой способ.
DATA TestDataset;
INPUT (a1-a3) ($);
DATALINES;
A B C
;
RUN;
Дополнительную документацию по языковым функциям, поддерживающим эту технику, можно найти здесь , в разделе «Как группировать переменные и информаторы».