SAS - код для динамического подсчета столбцов и суммирования каждого из них - PullRequest
0 голосов
/ 16 марта 2012

Мне интересно, может ли кто-нибудь помочь мне с проблемой кодирования.

Справочная информация - у меня есть проект, который импортирует некоторые файлы и использует данные в этих файлах для выполнения проекций.Содержимое файлов определяет некоторые аспекты размера вывода, который следует.Проще говоря, значения в данных, загруженных в диски, определяют размер и форму таблиц, которые следуют, и это может варьироваться.

Следующий пример является примером проблемы.

Загруженные данные будут иметьначало переменной года (примечание wf2009, 2009 год - первый год) и диапазон переменной (этот пример идет с 2009 по 2030 год, но это тоже будет меняться).

proc summary data= labeled_proj_data_hc;
class jurisdiction specialty measure;
types jurisdiction*specialty*measure;
VAR wf2009--wf2030;
output out= sum_labeled_proj_data_hc
    sum(wf2009) = y2009
    sum(wf2010) = y2010
    sum(wf2011) = y2011
    sum(wf2012) = y2012;
run;

Где я не уверен, какпродолжить это:

sum(wf2009) = y2009
sum(wf2010) = y2010
sum(wf2011) = y2011
sum(wf2012) = y2012;

В последовательности строк, требующих суммы соответствующих столбцов, как я могу сделать эту динамическую так, чтобы начальный год заполнялся из переменной, и он увеличивался ежегодно до последнего годакоторая также является переменной.

Кто-нибудь решал подобную проблему.

Приветствия,

1 Ответ

1 голос
/ 16 марта 2012

Необходимо ли переименование переменных? Если нет, то вы можете использовать оператор: wildcard для доступа ко всем переменным, которые начинаются с 'wf', а затем просто введите SUM = в выходной оператор, который сохранит исходные имена.

Таким образом, ваше резюме будет выглядеть следующим образом.

proc summary data= labeled_proj_data_hc;
class jurisdiction specialty measure;
types jurisdiction*specialty*measure;
VAR wf: ;
output out= sum_labeled_proj_data_hc
    sum=;
run;
...