两个数据集:
第一个数据集有很多观察结果:
data ds1;
do var1=1 to 3;
output;
end;
run;
第二个数据集有1个观察结果:
data ds2;
var2=1;
run;
每个数据集中的变量数量无关紧要。
我想将DS2中的单个观察值与DS1中的所有观察值合并得到:
数据集DS3:
VAR1 VAR2
1 1
2 1
3 1
我知道我可以使用PROC SQL步骤执行此操作:
proc sql noprint;
create table ds3 as
select a.*, b.*
from ds1 as a, ds2 as b;
quit;
是否可以使用单个数据步骤进行预测?
答案 0 :(得分:8)
如果VAR2总是为1,那么这将起作用:
ds3;
retain var2 1;
do var1 = 1 to 3;
output;
end;
run;
同样,如果DS1和DS2已经存在且DS2只有一个观察点,那么这应该有效:
ds3;
set ds1;
if _n_ eq 1 then do;
set ds2;
end;
run;