我希望在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,所以可能有一个更适合这个的功能?
非常感谢!
麦克
答案 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;
希望这会有所帮助: - )