我需要在一个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文件而不显式写入它们(有几千个文件).
谢谢你的帮助.
您需要弄清楚输入语句,而不是使用 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了解其他方法。
| 归档时间: |
|
| 查看次数: |
11726 次 |
| 最近记录: |