2017-04-19 67 views
0

我期待在SAS中进行一对多合并,我只想保留第一场比赛。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

检查了这一点: -

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

希望这有助于:-)

+0

@Mike如果我的回答帮你解决你的查询,请给予好评。看到这个链接:stackoverflow.com/help/someone-answers –