SAS: Как определить формат даты в SAS из папки UNIX?

#sas

#САС

Вопрос:

У меня есть доступ к каталогу linux, где он содержит несколько папок с различными именами. Например, 01312019 19990131 europe_1 johncena

Основываясь на 4 приведенных выше примерах, только первая и вторая строки являются допустимым форматом даты (MMDDYYYY amp; YYYYMMDD).

Чего я хочу добиться, так это определить и пометить папку с нужным мне форматом даты, например MMDDYYYY. После идентификации я напишу набор правил для дальнейшей обработки.

Мой сценарий ниже уже способен сканировать каталог.

 data allfilenames;  length fref $8 fname $200;  did = filename(fref,"amp;ROOT./amp;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,'.') gt;0 then delete; run;  

Однако теперь я застрял на том, как проверить имя папки на наличие формата даты. Опять же, возможно, что имена папок могут вообще не содержать допустимый формат даты или содержать другой формат даты (ГГГГММДД или ММДДДГГГ).

Есть ли какое-нибудь руководство, которому я могу следовать?

Ответ №1:

 data folderonly ;  input @1 fname $20.; datalines ; 01122021 12312021 20210901 blahblah ; run ;  data check ;  set folderonly ;  if input(fname,??mmddyy8.) then valid_mmddyy = 1 ; run ;  

Это?? перед тем, как информация подавит любые ошибки из-за данных, которые не соответствуют информации.