2012-08-27 1 views
11

SASで複数のデータセットを連結しようとしています。最終的な積み重ねデータセット内の個々のデータセット名に関する情報を保存する方法を探しています。SAS:個々のデータテーブル名を保持しながら異なるデータセットを連結する

たとえば、初期データセットは「my_data_1」、「abc」、「xyz」で、それぞれに「var_1」と「var_2」という列があります。

「var_1」、「var_2」、「var_3」という列の「最終」データセットにしたいと考えています。 「var_3」には、特定の行がどのデータセットから来たかに応じて、値「my_data_1」、「abc」または「xyz」が含まれます。

(これは、すべての個々のデータセットに余分な変数としてテーブル名を追加するための解決策ですが、100個程度のテーブルが積み重ねられ、効率的な方法を探しています)

答えて

8

あなたはそれぞれのデータセットを設定するときinステートメントを使用します。

data final; 
set my_data_1(in=a) abc(in=b) xyc(in=c); 
if a then var_3='my_data_1'; 
if b then var_3='abc'; 
if c then var_3='xyz'; 
run; 
30

を使用すると、SAS 9.2以降をお持ちの場合は、そうINDSNAMEオプション http://support.sas.com/kb/34/513.html

があります

data final; 
format dsname datasetname $20.; *something equal to or longer than the longest dataset name including the library and dot; 
set my_data_1 abc xyc indsname=dsname; 
datasetname=dsname; 
run; 
+0

ワウ - これは素晴らしいです、私は彼らがそのオプションを追加したことを知らなかった!私はこれを常に使用しています... –

+0

クールで素晴らしいオプション+1 – mAndroid

関連する問題