创建2个模仿数据集,都包罗从数值1开始的FASEQ变量:
data class1; set sashelp.class; if _n_ <=2 then do; do FASEQ_ = 1 to 2; output; end; end;run;data class2; set sashelp.class; if _n_ <=4 then do; do FASEQ_ = 1 to 3; output; end; end;run;这两个数据集的内容如下:
SAS步伐实现的效果是,在Class2中,Alfrd与Alice这两位受试者的FASEQ变量都会加上Class1数据集中的最大值2。
演示步伐如下:
proc sql norpint; create table class2_final as select a.*, b.max, sum(faseq_, b.max) as FASEQ from class2 as a left join (select name, max(faseq_) as max from class1 group by name ) as b on a.name = b.name order by name, faseq ;run;
步伐中表明一点,后一个数据集FASEQ变量与最大值求和时,使用sum函数是为了规避与空值相加照旧空值的情况。如果倒霉用sum函数的话,还必要用条件语句举行判定max是否为空。
如许处置惩罚就可以规避Issue SD0005,各家公司也可以思量将这个功能添加到SEQ宏步伐中。 感谢阅读, 接待关注:SAS茶谈!
如有疑问,接待品评交换!
接待点赞、转发!