Переименование нескольких переменных в нескольких наборах данных в ОДНОЙ библиотеке SAS

Есть ли способ переименовать одни и те же переменные в нескольких таблицах в ОДНОЙ библиотеке SAS, где есть и другие таблицы, в которых нет этой таблицы? Все таблицы с переменными, которые необходимо переименовать, имеют одинаковые два символа, с которых начинается имя таблицы. Я видел макросы для переименования нескольких переменных в одном наборе данных, но не для переименования нескольких переменных в нескольких наборах данных. Любая помощь относительно того, возможно ли это, будет оценена по достоинству!


person Brad    schedule 16.09.2016    source источник


Ответы (1)


Макросы не нужны. Вы можете собрать что-то вместе, используя наборы данных call execute и proc. Например.

data _null_;
  set sashelp.vtable end = eof;
  /*Replace xx with your two-letter dataset prefix*/
  where libname = upcase('mylib') and memname eq: upcase('xx') and memtype = 'DATA';
  if _n_ = 1 then call execute('proc datasets lib = mylib;');
  call execute(catx(' ','modify',memname,'; rename var1 = newvar1 var2 = newvar2; run;'));
  if eof then call execute('quit;');
run;

Это должно работать более или менее мгновенно, так как нужно только изменить метаданные.

person user667489    schedule 16.09.2016