我可以让 SAS 连接整个数据集文件夹吗?



我正在处理的数据似乎每年几乎被分成任意的集合。我想做的是能够首先将所有.sas7bdat文件连接在一个库中。我该怎么做?

或者,如果我知道库中的文件可能被分配的所有可能名称(但任何给定库中都可能缺少许多名称(,如何让 SAS 忽略丢失的文件?例如,假设我知道我库中的所有 .sas7bdat 文件都有一个名称"set01"、"set02"、"set03"或"set04"。如果特定库 ("L"( 缺少其中之一,则数据步骤:

DATA temp;
  SET L.set01 L.set02 L.set03 L.set04;
  RUN;

将产生错误。假设我知道其中至少有一个存在,是否有一个选项可以告诉 SAS 忽略丢失的?

(我知道这是两个完全不同的问题,但任何一个都可以解决我眼前的问题。

在 SAS 中,有一种简单的方法可以让 SAS 自动选择以某个通用名称开头的数据集,您可以使用以下语句:

data temp;
 set L.set0: ; /*It will search for all datasets that start with set0 and will set only those which are available*/
run;

它能回答您的问题吗?

第二种方法

libname L "Y:Test Data";
proc sql;
  select strip("L."||memname) into :DSNAME separated by ' '
    from dictionary.tables
    where libname='L';
quit;
/* Main final DS*/
data want;
  set &DSNAME;
run;

它将提取L目录中的所有数据集名称,并将创建宏变量DSNAME,例如:L.set01 L.oth02等,通用名称在这里无关紧要。

相关内容

最新更新