Search code examples
sassubsetdatastep

Sas data step keep statement from a text file


I have a table cust_base with 1000 variables. And I have a text file contents1 containing the names of 250 variables separated by tab, that I actually need to work with. I want to do something similar to:

%include "/location/contents1.txt";
data new_cust_base(keep = &contents1.txt);
set cust_base;
run;

Is this the correct approach/syntax? Or is there a better way to go about it? I tried digging online, but couldn't find much. Thanks a lot.


Solution

  • You can %include source code as the interior of a keep statement.

    set …;
    KEEP
      %include "/location/contents1.txt";
    ;
    

    Working example:

    data _null_;
      file 'c:\temp\keeplist.tab';
      put 'name' "09"x 'age' "09"x 'weight';
    run;
    
    data work.class;
      set sashelp.class;
    
      KEEP
        %include 'c:\temp\keeplist.tab';
      ;
    run;