2016-10-28 11 views
-1

データセットのペア(A & B)がありますが、Aは常にBで完全に削除された余分な観測値を持っています。可変B.比較条件が満たされたときにデータセット内にNull観測値(行)を追加する

例では "ワンセグ":

Dataset A    Dataset B    Desired dataset C: 

Seg Fz    Seg Fz    Seg Fz 

1  2.3   1  2.3    1 2.3 
2  9.2   2  1.3    2 . 
3  1.3   3  0.9    3 1.3 
4  11.4         4 . 
5  0.9         5 0.9 

I 1(C)に2つのデータセット(& B)をマージ、及びに欠損値とするための余分な観測を交換する必要があります"Seg"変数の順序を保持し、目的のデータセットCを取得します。

これを行う簡単な方法はありますか? 私は、それぞれ44個の観測値と4個の変数、すなわち を含む300組のデータセットを持っていますので、これをマクロまたはdoループに組み込む予定です。

はあなたに感謝:)

サンプルコード:

data A; 
input Seg Fz; 
datalines; 
1  2.3       
2  9.2       
3  1.3       
4  11.4        
5  0.9         
run; 


data B; 
input Seg Fz; 
datalines; 
1  2.3    
2  1.3    
3  0.9                     
run; 
+0

データセットCに保持する値を決定する方法を説明できますか?なぜセグ4が欠けているのですか? – superfluous

+0

データセットcなぜseg 2が欠落していますが、seg 3 1.3となぜseg 4が欠けていますか?5.9ですか? – DCR

+0

@superfluousについて説明します。このデータは、患者との臨床実験から得られたものです。データセットAで(第三者によって)削除された観測は、干渉のために偏っているとみなされました。しかし、私は縦方向のデータを扱っており、相関構造を正しくモデル化しようとしているため、データの順序と欠落した観測値が私にとって非常に重要です。 –

答えて

0

私は、これはあなたが探しているものをあなたを与えるだろうと思います。

proc sql noprint; 
    create table c as 
      select a.seg,b.fz 
        from a as a 
      left join b as b 
      on a.fz=b.fz 
      order by a.seg; 
quit; 

ですが、データセットaまたはbのいずれかに重複値がある場合は、これが必要なものではない場合があります。

+0

ありがとうございます! @DCR、その作品!!!!私は自分のデータで重複が可能だとは思わない。元の数字は小数点以下8桁です。 (つまり、3.72346857)ですから、その可能性は非常に低いです。もちろん、私は手動で重複を追加して見たいだけでテストし、8行のコードが何をするかをよく理解するつもりです。 LONG LIVE PROC SQL !!! :) –

関連する問題