Как упоминала Каролина, массивы используются для чтения переменных в одном и том же наблюдении.Они не подходят для достижения вашей цели здесь.Простой КРАТКИЙ ОБЗОР, вероятно, самый простой способ достичь этого.Я предполагаю, что ваши реальные данные за время, затраченное на выполнение, записываются в доли секунды, и поэтому практически невозможно запустить 2 программы в одно и то же время в месяце.Если нет, то вам нужно будет подумать, что делать в случае связи (в этом случае лучше использовать proc sql).
Вот код, если вы хотите видеть программу с самым высокимзначение, а не само значение, затем удалите «значение» в скобках с помощью «программы».
data have;
input month $ value program $;
cards;
Jan 8 A
Jan 6 B
Feb 2 C
Feb 1 A
Mar 9 C
Mar 6 B
;
run;
proc summary data=have nway;
class month;
output out=want (drop=_:) maxid(value(program value))=;
run;