合并SAS中的所有记录

itz*_*tzy 2 sas

我有两个数据集.Table1只有一个记录.Table2有很多记录.我想组合这些,以便将变量Table1添加到每个记录中Table2.

我知道这可以这样做proc sql:

proc sql;
 create table3 as
  select *
  from table1, table2;
quit;
Run Code Online (Sandbox Code Playgroud)

我想要相同的结果,但使用数据步骤.这样做的最佳(优雅,高效)方法是什么?

Joe*_*Joe 8

data table3;
if _n_ = 1 then set table1;
set table2;
run;
Run Code Online (Sandbox Code Playgroud)

这是最简单的方法.

  • 表1确实只读取一次,当_n_ = 1时 - 这就是为什么你没有在表1上达到EOF标记并在1次迭代后结束数据步骤(好吧,在2次迭代开始之后).发生的事情是通过set/merge/update进入的任何变量都会自动RETAINed(更准确地说,每次迭代都不会设置为零),因此Table1中的所有变量都会通过迭代保留. (2认同)