我有一个包含三个变量var1
,var2
和Price
的数据集。 Price
是var2
的价格。 var1
是Var2
的子样本。现在,我想通过将var1
的名称与Var1
相匹配,在Var2
中找到每种产品的价格。
数据看起来像这样。任何人都可以帮我解决这个问题。非常感谢
Var1 Var2 Price
apple ?
apple 2
banana ?
banana 2.1
apple ?
orange ?
orange 4
banana ?
yoghurt 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;