在两个数据集没有共同变量的情况下,合并只有一行数据的dataset 和 包含多行数据的dataset。
比如,对一个数据集进行 proc means 计算,只有一行结果,此时想要计算原始数据和 proc means 结果的运算,则需要首先合并两个数据集。例子:
原始数据:
data test; set sashelp.bmt(firstobs=1 obs=5); run;
proc means data=test; var t; output out=summary sum=total; run; proc print data=summary; run;
计算每一行和 total 的比值:
data test2; if _N_=1 then set summary; set test; pct = t/total * 100; run;
上面语句中,SAS 会自动把通过 set statement 读进来的变量自动保留住 (类似retain),并且只把 data step 第一轮的值迭代保留(_N_=1),第一轮迭代的结果是:
然后 retain 住这里 summary 变量的值,并继续读入 test 后续的 observations,最终结果是:
标签:set,run,data,合并,proc,summary,test,SAS,数据 From: https://www.cnblogs.com/zooz-logging/p/16749512.html