String 循环字符串,读入文件并保存
我是SAS的新手。我有一堆csv格式的文件,我想读入SAS。我需要一个接一个地阅读并保存它们,或者单独保存,或者最好保存在一个大文件中。(虽然文件可能非常大……不确定如何最好地处理这个问题-可能是MySQL?) 假设文件的名称如下所示:String 循环字符串,读入文件并保存,string,loops,import,sas,String,Loops,Import,Sas,我是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 IM
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 由于要循环执行Proc import
,因此必须执行宏
,同时由于编号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;
非常感谢。这太棒了!有一件小事-第四行末尾需要分号吗?