Merge SAS:仅在第一次匹配时合并
我希望在SAS中进行一对多合并,我只希望保留第一个匹配项 示例数据如下:Merge SAS:仅在第一次匹配时合并,merge,sas,one-to-many,Merge,Sas,One To Many,我希望在SAS中进行一对多合并,我只希望保留第一个匹配项 示例数据如下: data one; input id $ fruit $; datalines; a apple b apple c banana d coconut ; data two; input id $ color $; datalines; a amber b brown c cream c cocoa c carmel ; data both; merge one two; by id; run; p
data one;
input id $ fruit $;
datalines;
a apple
b apple
c banana
d coconut
;
data two;
input id $ color $;
datalines;
a amber
b brown
c cream
c cocoa
c carmel
;
data both;
merge one two;
by id;
run;
proc print data=both;
run;
正如您所看到的,这是一个一对多的合并
有没有办法让它只保留第一场比赛?i、 e.产出如下:
a apple amber
b apple brown
c banana cream
d coconut .
这里的背景是,第一个数据集包含属性,第二个数据集包含租约,我希望只查找属性的第一个租约。我刚刚开始学习SAS,所以可能有一个函数更适合这个
非常感谢
迈克看看这个:-
/*Creating Datasets*/
data one;
input id $ fruit $;
datalines;
a apple
b apple
c banana
d coconut
;
data two;
input id $ color $;
datalines;
a amber
b brown
c cream
c cocoa
c carmel
;
/*Just insert first.Id=1 in your code, it should do the job*/
data both;
merge one two;
by id;
if first.id =1;
run;
proc print data=both;
run;
希望这有帮助:-)@Mike如果我的回答帮助你解决了你的问题,请投票。请参阅此链接:stackoverflow.com/help/someone-answers