2017-04-19 17 views
0

SASで1対多のマージを行いたいと思っています。以下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; 

あなたが見ることができるように、これは1対多のマージです。

最初の試合だけを維持する方法はありますか?すなわち、出力は以下のようになります:ここ

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; 

希望私の答えはあなたがupvoteしてくださいあなたのクエリを解決する助けている場合、これは:-)

+0

@マイクを助けます。このリンクを参照してください:stackoverflow.com/help/someone-answers –

関連する問題