在SAS中附加多个CSV文件

use*_*263 5 csv sas

我需要在一个SAS数据集中导入大量的csv文件.它们都具有相同的数据结构(相同的变量,第一行的变量名称).我通常在SQL中工作,但我被迫参与SAS中的这个特殊项目,我只掌握了基础知识.

目前,我的代码如下所示:

proc import out=work.data
   datafile = file1.csv
   DBMS=CSV REPLACE;
   GETNAMES=YES;
   DATAROW=2;

proc import out=work.newData
   datafile = file2.csv
   DBMS=CSV REPLACE;
   GETNAMES=YES;
   DATAROW=2;

proc append base=work.data 
            data=work.newData force;    
run;
Run Code Online (Sandbox Code Playgroud)

等等为file3.csv ... file4.csv.

我确信,有一种更优雅的方法,即在一个文件夹上循环所有csv文件而不显式写入它们(有几千个文件).

谢谢你的帮助.

Joe*_*Joe 4

您需要弄清楚输入语句,而不是使用 PROC IMPORT (尽管如果您使用 PROC IMPORT 一次,它会礼貌地将输入代码写入日志,然后您可以使用),然后您可以使用通配符:

data mydata;
infile "c:\temp\*.csv" dlm=',' missover lrecl=32767;
input
myvar1
myvar2 $
myvar3
myvar4 :date9.
;
run;
Run Code Online (Sandbox Code Playgroud)

还存在一些其他选项;例如,请参阅https://communities.sas.com/message/182012#182012了解其他方法。