#sas #sas-macro
#sas #sas-макрос
Вопрос:
итак, у меня есть такой код
%let fdate=%sysfunc(today());
%put %sysfunc(putn(amp;fdate,MMDDYYD10.));
%let ydate=%eval(amp;fdate-1);
%put %sysfunc(putn(amp;ydate,MMDDYYD10.));
И, похоже, это работает
127 %let fdate=%sysfunc(today());
128 %put %sysfunc(putn(amp;fdate,MMDDYYD10.));
SYMBOLGEN: Macro variable FDATE resolves to 22152
08-25-2020
129 %let ydate=%eval(amp;fdate-1);
SYMBOLGEN: Macro variable FDATE resolves to 22152
130 %put %sysfunc(putn(amp;ydate,MMDDYYD10.));
SYMBOLGEN: Macro variable YDATE resolves to 22151
08-24-2020
но я использую вот так.
proc import datafile = "S:csse_covid_19_daily_reportsamp;ydate..csv"
out = T0824
dbms = CSV
REPLACE;
GUESSINGROWS=100000;
run;
Сообщение об ошибке отображается следующим образом.
csse_covid_19_daily_reports22151.csv.
ERROR: Import unsuccessful. See SAS Log for details.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IMPORT used (Total process time):
real time 0.02 seconds
cpu time 0.01 seconds
Они преобразованы обратно в 22151.
У меня есть файл, подобный этому
итак, чтобы извлечь этот файл в процессе импорта, я хочу формат, подобный 8-24-2020. таким образом, я могу получать данные из CSV в sas.
Как я могу исправить код?
Спасибо
Комментарии:
1. Это также может быть полезно для вас. При необходимости вы можете обрабатывать все сразу динамически. Это лучше, потому что, как только ваш ввод указан, это быстрее и гарантирует, что все будут считаны с одинаковыми типами / форматами, чтобы позже вы не столкнулись с проблемами несоответствия данных. communities.sas.com/t5/SAS-Communities-Library /…
Ответ №1:
Вам нужно использовать ту же переменную. В вашем тестировании вы используете%SYSFUNC(), но в вашем коде это не так, так что на самом деле вы сравниваете не одно и то же.
Измените свой код на:
"S:csse_covid_19_daily_reports%sysfunc(putn(amp;ydate.,MMDDYYD10.)).csv"
Или измените переменную вашего макроса, чтобы она была отформатирована. Если вы используете его в нескольких местах, используйте %SYSFUNC () для управления отображением в разных ситуациях, как это гарантировано.