我是SAS的新手。我有一堆csv格式的文件,我想读入SAS。我需要逐个阅读它们,并将它们单独或最好保存在一个巨大的文件中。 (虽然文件可能非常大......不知道如何最好地解决这个问题 - MySQL也许?)
假设文件的名称如下:
file97.csv
file98.csv
file99.csv
file00.csv
file01.csv
file02.csv
如何在循环语句中循环97, 98, 99, 00, 01, 02
?
如果我只是导入,请说file97.csv
,代码如下:
PROC IMPORT OUT= WORK.data97
DATAFILE= "\...\file97.csv"
DBMS=CSV REPLACE;
GETNAMES=YES;
DATAROW=2;
RUN;
我会写什么代码来循环?我基本上只需要更改97
s。
答案 0 :(得分:2)
由于您希望循环Proc import
,因此您必须Macros
,因为Numbers 97, 98, 99, 00, 01, 02
不是连续的,您将不得不使用解决方法。
%let files=97,98,99,00,01,02;
%macro loop_over;
%do i=1 %to %sysfunc(countw("&files."));
PROC IMPORT OUT= WORK.data%sysfunc(scan("&files.",&i.,","))
DATAFILE= "\...\file%sysfunc(scan("&files.",&i.,",")).csv"
DBMS=CSV REPLACE;
GETNAMES=YES;
DATAROW=2;
RUN;
%end;
%mend;
%loop_over;