繁体   English   中英

如何在数据步骤中将变量添加到 SET 语句中的数据集?

[英]How do I add a variable to a dataset within a SET statement in a data step?

我有一个 SAS 数据步骤,它使用%do循环来构建组合多个文件的 set 语句。 这些文件的名称格式为datafile2020q1datafile2021q3 ,并且每个文件都存储在名称格式DataLibrary2020DataLibrary2021的库中。

%macro processclaimsdata;
data rawclaimsdata (keep=&claimvariables.);
set
    %do yr=2019 %to 2021;
        %do qrtr=1 %to 4;
            DataLibrary&yr..datafile&yr.q&qrtr. (keep=&claimvariables.)
        %end;
    %end;
;
run;
%mend;

我的目标是为每个数据集向其中包含YYYYqQ的数据集添加一个变量,例如 2020q1 或 2021q3,这样我就可以跟踪它来自哪个文件。 这是否可以通过修改上面的代码来实现,或者我是否需要对其进行返工以使用proc append和/或proc sql

使用indsname=选项来跟踪一行来自的数据集。 虽然它不会采用您指定的格式,但这会告诉您一行来自的确切数据集名称。

下面的代码将在名为dsn的数据集中创建一个新变量,该变量存储一行来自的数据集的名称。

data want;
    set have1
        have2
        have3
    indsname=dsn;
run;

然后,您可以使用substr()或其他字符串函数从每个数据集名称中获取季度名称。 例如:

qtr = substr(dsn, -6);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM