如何匹配SAS中的数据

时间:2015-05-26 10:12:10

标签: sas

我有一个包含三个变量var1var2Price的数据集。 Pricevar2的价格。 var1Var2的子样本。现在,我想通过将var1的名称与Var1相匹配,在Var2中找到每种产品的价格。 数据看起来像这样。任何人都可以帮我解决这个问题。非常感谢

Var1    Var2    Price
apple           ?
        apple   2
banana          ?
        banana  2.1
apple           ?
orange          ?
        orange  4
banana          ?
        yoghurt 2

2 个答案:

答案 0 :(得分:1)

您可以通过SQL将价格合并到数据集上,通过var1 / var2:

来完成此操作
proc sql ;
create table output as
    select a.var1, a.var2, b.price
    from input a
    left join (select distinct var2, price
      from input 
      where not missing(var2)) as b
    on (a.var1=b.var2
    or a.var2=b.var2)
;quit ;

答案 1 :(得分:0)

尝试使用哈希表。

 data want;
   if 0 then set have(keep=var2 price where=(not missing(var2)));
   if _n_=1 then do;
      declare hash h (dataset:'have1(keep=var2 price where=(not missing(var2)))');
      h.definekey('var2');
      h.definedata('price');
      h.definedone();
      call missing(var2,price);
    end;
    set have;
    rc=h.find(key:var1);
    drop rc;
    run;