SAS导入多个数据集以将数据集名称保存为变量

SAS importing multiple datasets to save name of dataset as variable

我需要访问一个目录,其中包含一些名为 all_ci、all_pd、all_vs 等的 sas 数据集。ci 将是 'care info',pd将是 'patient data' 而 vs 将是 'vital stats.' 我正在这样阅读它们:

data ci_all;
set DIRECTORY.all:; run;

我得到一个 table,看起来像这样:

No.  
16
25
20

这仅适用于设置以 all 开头的所有集合。问题是我需要一个如下所示的输出:

Category          No.
Patient Data      16
Vital Statistics  25
Care Info         20

由于原始all_数据集没有类别标签,所以我必须手动统计all_数据集被读取的顺序,然后对其进行标注。我想知道是否有一种方法可以保存正在读入的数据集的名称,以便我可以更轻松地在行中标记它们。

在 SET 语句中使用 INDSNAME 选项。您需要将值复制到新变量,因为数据集选项中引用的变量会自动删除。

libname DIRECT 'mydirectory' ;
data ci_all;
  lenght dsname indsname  ;
  set DIRECT.all: indsname=indsname;
  dsname=indsname;
run;