【发布时间】:2013-07-14 01:30:15
【问题描述】:
我正在尝试使用 SAS 在 WRDS 上下载整个 TAQ 数据库。以下是WRDS技术支持人员给出的SAS代码:
%let wrds=wrds.wharton.upenn.edu 4016;
options comamid=TCP remote=WRDS;
signon username=_prompt_;
%macro taq_daily_dataset_list(type=ctm,begyyyymmdd=20100101,endyyyymmdd=20111231) / des="Autogenerated list of needed Daily TAQ datasets";
%let type=%lowcase(&type);
/* Get SAS date values for date range endpoints */
%let begdate = %sysfunc(inputn(&begyyyymmdd,yymmdd8.));
%let enddate = %sysfunc(inputn(&endyyyymmdd,yymmdd8.));
%do d=&begdate %to &enddate /** For each date in the DATE range */;
%let yyyymmdd=%sysfunc(putn(&d,yymmddn8.));
/*If the corresponding dataset exists, add it to the list */
%if %sysfunc(exist(taqmsec.&type._&yyyymmdd)) %then taqmsec.&type._&yyyymmdd;
%end;
%mend;
* using this macro;
data my_output;
set %taq_daily_dataset_list(type=ctm,begyyyymmdd=20100101,endyyyymmdd=20121231) open=defer;
run;
我试图在 SAS 中运行它,但它给了我一个错误“没有默认输入数据集 (_LAST_IS_NULL)”。我不知道如何使用SAS,甚至一点也不知道。我想要的只是下载数据库。
如果有人能帮助我离开这里,我真的很感激。
【问题讨论】:
-
该错误与您的代码不一致。唯一明显错误的是您没有定义 libname taqmsec,但这可能发生在 tcp 文件中。但是,您可能需要获取 tcp 连接脚本。不管怎样,这个错误意味着你有类似 proc 排序(或任何 proc)的东西,没有 data= 参数。