t********m 发帖数: 939 | 1 data m;
input key value;
cards;
11 12
11 14
;
data u;
input key value;
cards;
11 13
;
现在我想合并两个data sets,想得到这样的结果:
key value
11 12
11 13
也就是说我的新data要合并m和u,但是只想包含m中的value比u中的value小的records
,u中所有records都要包含。看起来好像挺简单的,可是怎么都实现不了。请教各位牛
人,多谢了! |
k*******a 发帖数: 772 | 2 先用merge,把m中负荷条件的选出来
然后把他和u用set合并 |
o*******y 发帖数: 810 | 3 一个笨的SAS sql方法
proc sql;
create table MU as
select *
from work.U
union all
select *
from work.M
having value <(select value from work.U)
order by value;
quit;
【在 t********m 的大作中提到】 : data m; : input key value; : cards; : 11 12 : 11 14 : ; : data u; : input key value; : cards; : 11 13
|
O**********e 发帖数: 539 | 4 SQL LEFT JOIN May be a good choice |
s******8 发帖数: 102 | 5 你的问题得有个前提条件:dataset U 中 Key是单一的。
试一下这个:
data youneed;
merge m u(rename =(value=value_u));
by key;
if value lt value_U then output;
if last.key then do;
value=value_u;
output;
end;
run;
当M中关键字不在U中时,记录就去掉了(相当于任何值都比空值大)。 |