Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在sas中设置具有相似名称的多个数据集_Sas_Datastep - Fatal编程技术网

在sas中设置具有相似名称的多个数据集

在sas中设置具有相似名称的多个数据集,sas,datastep,Sas,Datastep,假设我的工作环境中有不同数量的数据集,但所有数据集都以类似的名称开始:name_abc、name_efg、name_1ky等。这些数据集具有相同的变量和特征,我想将它们全部设置到一个数据集中 data bigdataset; set [all datasets that begin with name_]; run; 有没有一种方法可以在SAS中执行此操作,而无需键入所有数据集?我需要在工作环境中灵活使用这些数据集。使用变量名通配符: data bigdataset; set nam

假设我的工作环境中有不同数量的数据集,但所有数据集都以类似的名称开始:name_abc、name_efg、name_1ky等。这些数据集具有相同的变量和特征,我想将它们全部设置到一个数据集中

data bigdataset;
    set [all datasets that begin with name_];
run;

有没有一种方法可以在SAS中执行此操作,而无需键入所有数据集?我需要在工作环境中灵活使用这些数据集。

使用变量名通配符

data bigdataset;
 set name_:;
run;
变量名称前缀后面的冒号选择其 名称以该前缀开头。结肠的这种能力伴随着 一些简单的命名标准使程序员能够管理 更好的临时变量,更快地格式化多个变量,确定 未知数量的变量,清理宏生成的数据集,以及 缩短各种程序的代码。比如说

data ADLB;
set  lb:;
此数据步骤读取工作库中以LB开头的所有数据集。同样,当程序员 编码此步骤时,他/她不需要知道有多少数据集 读取,仅表示他/她希望使用 特定前缀。冒号和破折号列表也可用于合并 声明


引用自

您可以使用冒号修饰符,例如,下面将合并sashelp库中以prdsal开头的所有数据集:

data all ;
 set sashelp.prdsal: ;
run;

无论数据集是否具有公共前缀,这都将起作用。当然,对于您的情况,修饰符是一个非常好的解决方案

PROC SQL noprint;
    SELECT CATS(libname,".",memname) into :DSNS separated by " "
    FROM DICTIONARY.TABLES 
    WHERE UPCASE(LIBNAME)="YOUR_LIBNAME";
QUIT;
%Put DATA SETS: &DSNS;

Data BIGDATASET;
    Set &dsns;
Run;

嗯,那些编辑完全错过了Reeza的起始点<代码>前缀:正确。prefix=数据集通用的前缀…@skobaljic,如果您添加了来自文档等源的引用,请同时添加对该源的引用。添加,希望对其他人有用。