我在SAS中有以下任务。 Ggiven是我在SAS中导入的Excel文件。在一行“looking_date”中,我感兴趣的是一个日期。
另一方面,有一个包含许多文件的目录(“C:\ myWork \”)。
此目录中每个文件的名称包含一个日期和另一个可能始终不同的部分。
所以我以算法形式尝试:
我不知道如何实施上述两个步骤。起初我以为我从这个目录中读取了所有文件的名称,但是我仍然存在模式名称的问题! 我很感激能够开始的每一个提示
答案 0 :(得分:1)
要阅读操作系统上的目录,您可以使用data step
,如下所示:
%let path_to_catalog=C:\myWork;
data files;
/* define a directory */
rc = filename("mydir","&path.");
/* open the directory */
did = dopen("mydir");
/* check if it's opened */
if did > 0 then do;
/* itereate over objects in the directory */
do n = 1 to dnum(did);
/* read name of file */
filename = dread(did, n);
/* output files with *.DAT extension */
if scan(upcase(filename), -1, '.') = 'DAT' then
output;
end;
end;
/* close the directory */
rc = dclose(did);
drop rc did;
run;
从excel文件中读取日期
libname exc_lib pcfiles "path_to_execel";
proc sql;
select distinct input(looking_date, ddmmyy8.)
into :dates separated by ','
from exc_lib.'sheet1$'n;
quit;
检查文件是否包含excel文件中的日期
data result;
set files;
date = input(substr(filename, 1, 8), ddmmyy8.);
if date in (&dates) then output;
run;