如何使用数据格式 DDMMYYDw。在 Proc 导入 SAS MACRO
How can I use data format DDMMYYDw. in Proc Import SAS MACRO
所以我有这样的代码
%let fdate=%sysfunc(today());
%put %sysfunc(putn(&fdate,MMDDYYD10.));
%let ydate=%eval(&fdate-1);
%put %sysfunc(putn(&ydate,MMDDYYD10.));
而且它似乎有效
127 %let fdate=%sysfunc(today());
128 %put %sysfunc(putn(&fdate,MMDDYYD10.));
SYMBOLGEN: Macro variable FDATE resolves to 22152
08-25-2020
129 %let ydate=%eval(&fdate-1);
SYMBOLGEN: Macro variable FDATE resolves to 22152
130 %put %sysfunc(putn(&ydate,MMDDYYD10.));
SYMBOLGEN: Macro variable YDATE resolves to 22151
08-24-2020
但是我是这样用的
proc import datafile = "S:csse_covid_19_daily_reports\&ydate..csv"
out = T0824
dbms = CSV
REPLACE;
GUESSINGROWS=100000;
run;
错误信息是这样显示的。
\csse_covid_19_daily_reports151.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。
我有这样一个文件
因此,要在 proc 导入中提取此文件,我需要类似 8-24-2020 的格式。这样我就可以将数据从 CSV 转换为 sas。
如何修复代码?
谢谢
您需要使用相同的变量。在您的测试中,您正在使用 %SYSFUNC() 但在您的代码中您没有使用,因此您实际上并没有在比较同一件事。
将您的代码更改为:
"S:csse_covid_19_daily_reports\%sysfunc(putn(&ydate.,MMDDYYD10.)).csv"
或者更改要格式化的宏变量。如果您在多个位置使用它,请根据需要使用 %SYSFUNC() 来控制不同情况下的显示。
所以我有这样的代码
%let fdate=%sysfunc(today());
%put %sysfunc(putn(&fdate,MMDDYYD10.));
%let ydate=%eval(&fdate-1);
%put %sysfunc(putn(&ydate,MMDDYYD10.));
而且它似乎有效
127 %let fdate=%sysfunc(today());
128 %put %sysfunc(putn(&fdate,MMDDYYD10.));
SYMBOLGEN: Macro variable FDATE resolves to 22152
08-25-2020
129 %let ydate=%eval(&fdate-1);
SYMBOLGEN: Macro variable FDATE resolves to 22152
130 %put %sysfunc(putn(&ydate,MMDDYYD10.));
SYMBOLGEN: Macro variable YDATE resolves to 22151
08-24-2020
但是我是这样用的
proc import datafile = "S:csse_covid_19_daily_reports\&ydate..csv"
out = T0824
dbms = CSV
REPLACE;
GUESSINGROWS=100000;
run;
错误信息是这样显示的。
\csse_covid_19_daily_reports151.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。
我有这样一个文件
因此,要在 proc 导入中提取此文件,我需要类似 8-24-2020 的格式。这样我就可以将数据从 CSV 转换为 sas。
如何修复代码?
谢谢
您需要使用相同的变量。在您的测试中,您正在使用 %SYSFUNC() 但在您的代码中您没有使用,因此您实际上并没有在比较同一件事。
将您的代码更改为:
"S:csse_covid_19_daily_reports\%sysfunc(putn(&ydate.,MMDDYYD10.)).csv"
或者更改要格式化的宏变量。如果您在多个位置使用它,请根据需要使用 %SYSFUNC() 来控制不同情况下的显示。