如何过滤SAS中的列

lor*_*d12 1 sas

假设您有一个数据集,如下所示:

FSA1 SSA1 SBW1
1     2    3
Run Code Online (Sandbox Code Playgroud)

在数据步骤中是否有一种方法可以过滤不包含"SA"的列?我不想使用drop或keep语句,因为真实数据集有数百个变量.

She*_*hen 6

像这样的东西:

proc sql;
   select name into: dropnames
   separated by " "
   from dictionary.columns 
   where libname='SASHELP' and memname='CLASS' 
   having name contains 'He';
   quit;

   data class;
   set sashelp.class;
   drop &dropnames;
   run;
Run Code Online (Sandbox Code Playgroud)

  • lib名称,memname和name参数也区分大小写.打开sashelp.vtable以直观地验证您的数据.您还可以将它们包装在上/下函数中,以确保事物以您期望的方式解决. (2认同)