Sas data step keep语句来自文本文件

Sas data step keep语句来自文本文件,sas,subset,datastep,Sas,Subset,Datastep,我有一个包含1000个变量的表cust\u base。我有一个文本文件contents1,其中包含250个变量的名称,用tab分隔,我实际上需要处理这些变量。我想做一些类似的事情: %include "/location/contents1.txt"; data new_cust_base(keep = &contents1.txt); set cust_base; run; 这是正确的方法/语法吗?还是有更好的办法?我试着在网上挖掘,但找不到太多。非常感谢。您可以%将源代码作为kee

我有一个包含1000个变量的表
cust\u base
。我有一个文本文件
contents1
,其中包含250个变量的名称,用tab分隔,我实际上需要处理这些变量。我想做一些类似的事情:

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

这是正确的方法/语法吗?还是有更好的办法?我试着在网上挖掘,但找不到太多。非常感谢。

您可以
%将
源代码作为
keep
语句的内部

set …;
KEEP
  %include "/location/contents1.txt";
;
工作示例:

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;

您可以
%在
keep
语句中包含
源代码

set …;
KEEP
  %include "/location/contents1.txt";
;
工作示例:

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;

请注意,某些SAS版本不喜欢包含包含到长线的文件。因此,如果他只有一行,那么最好在导入之前将制表符改为换行符,否则末尾的变量可能会被切断。请注意,某些SAS版本不喜欢包含有长行的文件。所以,如果他只有一行,在导入之前最好将tab改为newline,否则末尾的变量可能会被截断。