2017-06-27 12 views
1

を追加します。予期しない動作が、私は次のコードを実行

data temp1; 
    set sashelp.class; 
    table=1; 
run; 

data temp2; 
    set sashelp.class; 
    table=2; 
run; 

proc append base=temp1(drop=sex) data=temp2 force; 
run; 

を私はsexがTEMP1から削除されることを考えました。だから、sexは、それはまた、TEMP2、結果セットから削除されます列sexが含まれていませんが不足しています。

しかし、私は本当の結果によって、イライラしています: enter image description here

はなぜtable=1ためsexが充填されているtable=2のための空の?

+0

BASEは、どのような方法で変更されていません...エラーや警告なしに実行されるコードを書くことを目指すべきです。 –

答えて

3

@data nullには、proc appendを使用すると、基本データセットは変更されません。これは、PROCはappendを使用する主な理由である - それは、ベースデータセットの「パス」を必要とせず、ただは最後までデータを追加します。この(かなり特殊な)場合

sex変数がドロップであると考えられ、それは、その後の追記用可視/書かれていません。

また、(thanks again @data null)ここにはログのWARNINGのヒントがあります。ベストプラクティスの問題として、一つは常に

+0

警告:BASEファイルでは可変性別が見つかりませんでした。変数はBASEファイルに追加されません。この警告は何が起こっているのかを説明します。 –

+0

ありがとうございました。 – zuluk

関連する問題