SAS:如何从 UNIX 文件夹中检测 SAS 中的日期格式?
SAS: How to detect the date format in SAS from UNIX folder?
我可以访问 linux 目录,其中包含多个名称各不相同的文件夹。
例如。
01312019
19990131
europe_1
约翰塞纳
根据以上 4 个示例,只有第一行和第二行是有效的日期格式 (MMDDYYYY & YYYYMMDD)。
我想要实现的是识别并标记具有我想要的日期格式的文件夹,例如 MMDDYYYY。一旦确定,我会写一套规则进一步处理它。
我下面的脚本已经可以扫描目录了。
data allfilenames;
length fref fname 0;
did = filename(fref,"&ROOT./&Directory.");
did = dopen(fref);
do i = 1 to dnum(did);
fname = dread(did,i);
output;
end;
did = dclose(did);
did = filename(fref);
keep fname;
run;
data folderonly;
set allfilenames;
if count(fname,'.') >0 then delete;
run;
但是,现在我卡在了如何检查文件夹名称的日期格式上。同样,文件夹名称可能根本不包含有效的日期格式,或者包含不同的日期格式(YYYYMMDD 或 MMDDYYYY)。
有没有我可以遵循的指南?
data folderonly ;
input @1 fname .;
datalines ;
01122021
12312021
20210901
blahblah
;
run ;
data check ;
set folderonly ;
if input(fname,??mmddyy8.) then valid_mmddyy = 1 ;
run ;
那个??在信息格式抑制由于数据与信息不匹配而导致的任何错误之前。
我可以访问 linux 目录,其中包含多个名称各不相同的文件夹。 例如。 01312019 19990131 europe_1 约翰塞纳
根据以上 4 个示例,只有第一行和第二行是有效的日期格式 (MMDDYYYY & YYYYMMDD)。
我想要实现的是识别并标记具有我想要的日期格式的文件夹,例如 MMDDYYYY。一旦确定,我会写一套规则进一步处理它。
我下面的脚本已经可以扫描目录了。
data allfilenames;
length fref fname 0;
did = filename(fref,"&ROOT./&Directory.");
did = dopen(fref);
do i = 1 to dnum(did);
fname = dread(did,i);
output;
end;
did = dclose(did);
did = filename(fref);
keep fname;
run;
data folderonly;
set allfilenames;
if count(fname,'.') >0 then delete;
run;
但是,现在我卡在了如何检查文件夹名称的日期格式上。同样,文件夹名称可能根本不包含有效的日期格式,或者包含不同的日期格式(YYYYMMDD 或 MMDDYYYY)。
有没有我可以遵循的指南?
data folderonly ;
input @1 fname .;
datalines ;
01122021
12312021
20210901
blahblah
;
run ;
data check ;
set folderonly ;
if input(fname,??mmddyy8.) then valid_mmddyy = 1 ;
run ;
那个??在信息格式抑制由于数据与信息不匹配而导致的任何错误之前。