我想从[HKAB]网站[1]获得最新的香港银行同业拆息率。
以下是我尝试过的代码:虽然它在filename语句中给出了错误
data parm;
format yyyymmdd $8.;
yyyymmdd = put(date(), yymmddn8.);
yyyy = put(substr(yyyymmdd, 1, 4), $4.);
mm = put(substr(yyyymmdd, 5, 2), $2.);
dd = put(substr(yyyymmdd, 7, 2), $2.);
*url = 'http://www.hkab.org.hk/hibor/listRates.do?lang=en&Submit=Search&year='||yyyy||'&month='||mm||'&day='||dd;;
format url $1024.;
url = 'http://www.hkab.org.hk/hibor/listRates.do?lang=en&Submit=Search&year=' || yyyy || '&month=' || mm || '&day=' || dd;
url2 = 'curl ' || url;
call symput('url',url);
call symput('url',url);
call symput('url',url);
call symput('url',url);
call symput('url2',url2);
put _all_;
run;
%put &url2.;
filename hiborpage url &url.;
[1]: http://www.hkab.org.hk/hibor/listRates.do?lang=en&Submit=Search&year=2015&month=1&day=26
答案 0 :(得分:2)
您的fileref
超过8个字符。将hiborpage
更改为更短的内容,例如hibor
。另外,正如Reeza所提到的,将&url
放在双引号中。宏变量不会用单引号解析。这应该可以解决错误。
网址中还有&符号。通常,您只需将这样的字符串放在单引号中,但由于它在宏变量中,您需要双引号。问题是SAS尝试解析它认为是URL中的宏变量,并在失败时给出警告。要避免这些警告,请使用宏函数%nrstr()
来屏蔽宏变量中的&符号,例如:
%let url3 = %nrstr(&url);
filename hibor url "&url3.";