在数据处理中,很多时候都需要把一个只有一行数据的data merge到一个n行obs的data中去,然后进一步做计算处理,例如:
data one;
input x y z;
cards;
1 2 3
3 3 4
...
;
假设data one有上万行数据,其中会有extreme value,现在想分别算出x y z的1% 和99% quantile 以作为critical value进行删除或者truncate处理。计算quantile不难,可以用proc univariate。但是在进行删除或truncate的时候需要在一个data set里进行,这就需要把这一行的data set与之前上万行的data set merge起来。假设 data two 是含 1%和99% critical value的data set。 用下面这个小技巧即可:
data three;
if _N_=1 then set two;
set one;
run;
merge成功!当然,除此之外还有很多种1 to n的 merge 方法,个人认为这个很简单。