Когда у вас есть таблица типа;Создать таблицу с петлей в SAS
somefield1 somefield2 lastterm1 lastterm2
(10) (20) (1) (-)
(20) (40) (1) (2)
(30) (50) (-) (2)
и попытайтесь сгруппировать для каждого термина, есть ли более простой способ сделать это, а не;
PROC SQL;
CREATE TABLE WORK.LAST_TERM1 AS
SELECT T1.LASTTERM1,
(MEAN(t1.'somefield1'n)) FORMAT=COMMAX14.2 AS 'MEAN_of_somefield1'n,
(MEAN(t1.'somefield2'n)) FORMAT=COMMAX14.2 AS 'MEAN_of_somefield2'n
FROM WORK.MAIN_TABLE t1
GROUP BY t1.LASTTERM1;
RUN;
PROC SQL;
CREATE TABLE WORK.LAST_TERM2 AS
SELECT T1.LASTTERM2,
(MEAN(t1.'somefield1'n)) FORMAT=COMMAX14.2 AS 'MEAN_of_somefield1'n,
(MEAN(t1.'somefield2'n)) FORMAT=COMMAX14.2 AS 'MEAN_of_somefield2'n
FROM WORK.MAIN_TABLE t1
GROUP BY t1.LASTTERM2;
RUN;
Это не проблема с двумя полями и двумя терминами, но если у вас есть 20 терминов и 200 полей этот код не является эффективным.
Я попытался и не смог сделать что-то вроде 1-20, сделав это и создав все таблицы.
Есть ли способ сделать это?
На самом деле я спрашиваю, как сделать sas-macro, который может заменить имя выходной таблицы и переменную класса. вот где я потерпел неудачу. Это должно быть сделано, потому что они растут по порядку, например «lastterm (n)», «lastterm (n + 1)» ... – kutayatesoglu
Этот макрос полностью то, что я искал. Спасибо за помощь :) – kutayatesoglu