Как я могу выбрать файл последней недели из папки с макросом sas? - PullRequest
1 голос
/ 28 июня 2011

Мне нужно выбрать файл последней недели из папки, но я не хочу вводить неделю каждый раз. Это еженедельный отчет, который я хочу сделать так же просто, как нажать F3 и запустить его.

eg. sales_data_201123
    sales_data_201124

и так далее. В приведенном выше примере следует выбрать sales_data_201124, поскольку он самый последний.

Пожалуйста, сообщите! Раджанс

1 Ответ

3 голосов
/ 28 июня 2011

Есть несколько способов подойти к этому.Можно было бы найти конкретный файл - например, использовать функцию today() в сочетании с intnx(), чтобы вычислить имя файла, который вы ищете, а затем открыть этот файл.

Я думаю, что более простой подход заключается в том, чтобы прочитать все имена файлов в каталоге в набор данных:

filename fnames pipe 'dir c:\temp\* /b';

data fnames;
  infile fnames pad missover;
  input @1 filename $255.;
  dt=scan(filename,3,'_');
run;

Затем просто отсортировать fnames и выбрать последнее, или еще лучше,используйте proc sql, чтобы поместить имя файла в макропеременную:

proc sql noprint;
  select filename into :fname
  from fnames
  having dt=max(dt);
quit;

Файл, который вы хотите открыть, теперь можно вызывать с помощью &fname.

...