2017-01-09 10 views
0

を完了するために、SASにマージするSASのプログラムの開発とあなたたちは私を助けることを願って:1多くは、私は統計にマージに苦しんでいますライン

私はデータセットを持って、私はそれがなめらかに見える一緒 に参加したいということ。次いで たstatmentsを "VAR5 = 0/1、次いで削除" 場合、私はによって2に設定されているデータを区切ることを試み

id |var1 |var2 |var3 |var4 |Var5 
>--------------------------------< 
1 |A1 |B1 |C1 | D2| 0| 
1 |A2 |B2 |C1 | D2| 1| 

と:

入力:

id |var1 |var2 |var3 |var4 |Var5 
>--------------------------------< 
1 |A1 |B1 |C1 | -- | 0 | 
1 |A2 |B2 |-- | D2 | 1 | 

所望の出力、このような一緒に結合する: データ例1

id |var1 |var2 |var3 |var4 |Var5 
>----------------------------< 
1 |A1 |B1 |C1 | -- | 0| 

データ例2

id |var1 |var2 |var3 |var4 |Var5 

>--------------------------------< 

1| A2 | B2 |-- | D2| 1| 

マージコード:

data Example12; 
merge example1 (IN=X) example2; 
    by persnr; 
    IF x=1; 
run; 

しかし、このようなものになり:任意のヘルプは大歓迎

 
id |var1 |var2 |var3 |var4 |Var5 

1|A1 |B1 |C1|  D2| 0| 
1|A1 |B1 |C1|  D2| 0| 

+0

これは純粋なSASの問題であり、私たちの多くはここにSASを知っているが、それがこのサイトのトピックオフになっています。マージは難しいことがあります。 StackOverflowに移行します。彼らはそのような質問に答えようとしています。 –

答えて

0

VAR3またはVAR4にIDごとに1レコードしか欠損しない値がある場合は、データセットオプションを使用してVAR3の値を取得する1対多のマージを設定し、 VAR4はそのIDのすべての行にマージされました。

まずレッツ・セットアップあなたの例のデータ:

data have ; 
    input (id var1-var4) ($) var5 ; 
cards; 
1 A1 B1 C1 . 0 
1 A2 B2 . D2 1 
; 

今マージを試してみてください。

data want ; 
    merge have(drop=var3 var4) 
     have(keep=id var3 where=(not missing(var3))) 
     have(keep=id var4 where=(not missing(var4))) 
    ; 
    by id; 
run; 
関連する問題