在一个 SAS 库中重命名多个数据集中的多个变量

Rename Multiple Variables in Multiple Data sets in ONE SAS Library

有没有一种方法可以重命名一个 SAS 库中多个 table 中的相同变量,其中还有其他 table 没有那个 table?所有具有需要重命名的变量的 table 都具有相同的两个以 table 名称开头的字符。我见过宏可以重命名一个数据集中的多个变量,但不会重命名多个数据集中的多个变量。如果能提供任何帮助,我们将不胜感激!

不需要宏。您可以使用 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;

这应该 运行 或多或少是即时的,因为它只需要修改元数据。