2015-11-04 222 views
1

我需要访问一个名为all_ci,all_pd,all_vs等一些sas数据集的目录。ci将是'care info',pd将是'patient data',vs将是'重要的统计数据'。我在读它们的方式:SAS导入多个数据集以将数据集名称保存为变量

data ci_all; 
set DIRECTORY.all:; run; 

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

No. 
16 
25 
20 

此作品只设置所有的一切开始集。问题是,我需要的输出,看起来像这样:

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

由于原ALL_数据集没有类别标签,我必须手动计数,其中责令ALL_数据集阅读,然后贴上标签。我想知道是否有一种方法可以保存正在读入的数据集的名称,这样我可以更轻松地将它们标记在行中。

回答

3

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

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

正是我在找的东西,这节省了我很多时间。 – PinkyL

+0

可能要注意的版本它适用于(9.3+)。 – Joe