SAS:按年将数据导出到多个csv文件

SDF*_*SDF 4 sas sas-macro

我在SAS中有一个数据集,其中包含20年的数据.我想每年导出到csv文件.有没有简单的方法呢?

这是我现在做的一年(这是天真的):

proc export
data = ds(where =(year = 2011))outfile ='ds2011.csv'DBMS = CSV replace;
跑;

非常感谢!

DWa*_*Wal 7

非宏选项:

您可以file在数据步骤中使用该语句来写出各种类型的文本或分隔文件.使用该filevar选项可以为变量的每个值创建一个文件,如下所示.

替换yourdata为您的数据集以及write_location您希望文件的位置.

data _null_;
  set yourdata;
  length fv $ 200;
  fv = "\write_location\" || TRIM(put(year,4.)) || ".csv";
  file write filevar=fv dsd dlm=',' lrecl=32000 ;
  put (_all_) (:);
run;
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是,对于大型数据集,这种方法比宏版本更有效,因为它只需要读取输入数据集一次(而不是每年一次). (3认同)