同じ

2016-10-25 9 views
0

私は、私は私はちょうどソートのProcを使用することになり、PROC SQL同じ

Proc sql; 
    create table PA as 
    select a.*, b.text as county from PA a left join abnom.countyn b 
on a.countycode=b.amt 
; 
Quit; 

通常を使用せずに、それを複製するには、次のコードしようとしていますしています共通の変数でデータセットとマージしますが、この例ではcountycodeをbでamtに変換しますが、これはマージでは機能しません。私は次のことを試しました

proc sort data=PA; 
    by countycode; 
run; 

data tmp; 
    set exam.ts2; 
    countycode = amt; 
    county = tekst; 
run; 

proc sort data=tmp; 
    by countycode; 
run; 

data PA; 
    merge PA(in=a) tmp(in=b); 
    by countycode; 
    if a; 
run; 

これは確かにセットをマージします。しかし、私はどのようにproc SQLに記載されている変数を除外して名前を変更するかわかりません。また、私はこの問題のデータセットにアクセスすることができませんでしたので、私は自分のソリューションをテストすることができません(私はテストセットを作ったが)。

つまり、proc sqlを使用せずにproc sqlをどのように複製できますか?

よろしく、 ステファン

答えて

1

あなたはデータセットオプションkeep & renameを探しています。

proc sort data=PA; 
     by countycode; 
    run; 

    proc sort data=exam.ts2; 
     by amt; 
    run; 

    data PA; 
     merge PA(in=a) exam.ts2(keep= amt text rename=(amt=countycode text=county)); 
     by countycode; 
     if a; 
    run;