Merge 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

我希望在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;

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