SAS - сохранить имя обрабатываемой таблицы - PullRequest
0 голосов
/ 10 октября 2018

Я читаю несколько таблиц и хотел бы знать имя обрабатываемой таблицы, чтобы я мог сохранить ее в своей выходной таблице.Есть ли автоматическая переменная или какой-нибудь флаг, который поможет?Я уверен, что это можно сделать при чтении списка файлов CSV и т. Д. Но это наборы данных.Что-то вроде:

%let table_list=one two three;
Data whatever;
  set &table_list;
  table_name = ?????;

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

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

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

data input_ds;
  a=1;
  output;
run;

%put &SYSLAST;

data output_ds(label="created from &SYSLAST");
  set input_ds;
  b=1;
run;

%put &SYSLAST;

. Вы также можете использовать наборы данных proc для назначения меток набора данных:

/*Modify an existing label*/
proc datasets lib = work;
  modify output_ds(label="New label");
  run;
quit;

Вы можете получить метку набора данных с помощью функции attrc.

0 голосов
/ 10 октября 2018

Вам необходимо использовать опцию INDSNAME = в операторе SET.Посмотрите подробности.

INDSNAME = variable

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

...