SAS:仅在第一场比赛时合并

时间:2017-04-19 09:31:22

标签: 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;

proc print data=both;
run;

如您所见,这是一对多合并。

有没有办法让它只保留第一场比赛?即输出如下:

a apple amber
b apple brown
c banana cream
d coconut .

这里的背景是第一个数据集包含属性,第二个数据集包含租约,我希望只找到属性上的第一个租约。我刚刚开始学习SAS,所以可能有一个更适合这个的功能?

非常感谢!

麦克

1 个答案:

答案 0 :(得分:0)

检查出来: -

/*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;

希望这会有所帮助: - )