Дата как имя переменной - PullRequest
0 голосов
/ 02 июня 2011

Я хотел бы использовать дату в качестве имени переменной. Я понимаю, что мне нужно добавить символ вперед, а также, что это не очень хороший способ хранения данных (это чисто для эстетики отчета) Я пробовал %eval(), но не могу решить.

%let var_date = '_'||today();
data date;
    %eval(&var_date) = .;
run;

Я бы хотел, чтобы имя переменной было _02JUN2011. Спасибо за любую помощь.

Ответы [ 3 ]

3 голосов
/ 02 июня 2011

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

Для вашего назидания следующий код делает то, что вы пытаетесь сделать в своем посте:

%let var_date=_%sysfunc(today(),date9.);

data test;
  &var_date=.;
run;
0 голосов
/ 02 июня 2011

Это делает то, что я ищу. Это ремонтопригодно?

data date1;
    date = put(today(),date9.);
    text = '';
    do i = 1 to 5;
        output;
    end;
run;
proc transpose data = date1 out = date2;
    by i;
    id date;
    var text;
run;
0 голосов
/ 02 июня 2011

Вы действительно хотите использовать хеш - это не поддерживаемый код ..

...