在数据步骤中表达"PUT all variables"以导出SAS数据

zku*_*rtz 3 text export sas datastep

目标:使用数据步骤将整个SAS数据集导出到制表符分隔的文本文件.

问题:在我能找到的每个例子中,例如这个,必须在PUT语句后面的数据步骤中指定每个变量. 是不是只有一个简单的方法来询问"所有"变量?

我已经尝试过使用PUT _ALL_,但是在输出的每一行中都包含变量名,而不是只输出值.

Joe*_*Joe 6

如果你想在数据步骤中做到这一点,并且不想指定事情,但实际上不想PROC EXPORT为你做出决定,并且拥有相当容易指定的数据(没有什么像你想要的特殊格式的日期) , 你可以这样做.

proc sql;
select name into :namelist separated by ' ' 
from dictionary.columns
where libname='SASHELP' and memname='CLASS'; *these are the libname/dataset name you want;
quit; 

filename blah temp;
data _null_;
set sashelp.class;
file blah dlm='09'x;
put &namelist.;
run;
Run Code Online (Sandbox Code Playgroud)

您可以根据需要通过修改sql查询来自定义它(例如,如果您有一组变量,_date可能您可以修改它以name||' :date9.'在sql查询中添加它们.

请注意,dictionary.columns中的libname/memname/name字段通常是大写的.它们并不总是大写,我不认为,但它们几乎总是如此.(例如,有些RDBMS可以覆盖它).

  • 通过这个工作 - 只是注意到'SASHELP'和'CLASS'显然必须是大写的. (3认同)