2017-08-22 1 views
0

状態の異なる郵便番号の統計に関する情報を含む複数のテーブルがあります。これを行うために、私は(zipcode1 zipcode2 zipcode2)を持っていたので、すべてを通過したループを実行しました。これはうまくいきましたが、今は追加されたテーブルの各テーブルのすべての統計のマスターテーブルを作成しようとしています。どのように私はたびに上書きされているか、それらが が上書きされませんので、私は 各テーブルに郵便番号を追加することができますが、私は、各 ので、次のzipファイルを追加する方法がわからない新しいテーブルの統計情報を既存のテーブルの次の行に既存の識別子で追加する

proc sql; 
create table wanted_all_zips 
as 
select stats 
from ( 

テーブルは言うのですかコードは、私は、各郵便番号のためにこれを書き出すことにしたくないテーブルがたくさんある*/

; 
    quit; 

次/第二列のようになり、コードは本当に厄介得ることができます。郵便番号から言う方法はありますか:< ---郵便番号組合で始まるようなものはすべて

答えて

1

、あなたは、単にそれ

proc sql; 
create table have as 
select ... 
; 
quit; 

proc append base=wanted data=have force; 
run; 

以内にこれを実行するたびに、このを行うことができ、それはマスターテーブルにhaveの内容を追加しますwanted

+0

このオプションを使用すると、sasは設定済みの変数が欲しいセットになっていないので、できません。 –

+1

@ JessicaWarrenそうであってはならない。 'proc append'を実行するときに' base = 'テーブルが存在しない場合、プロシージャはそれを作成します。 'proc sql'を実行するたびに、同じテーブル構造を持つ同様の出力が作成されます。だから、 '持っている'データセットに、 '求められた'データセットにない変数が含まれる理由はありません。実行した他のコードから作業ライブラリに '望み 'というデータセットをまだ持っていないことは確かですか? – user2877959

+0

ありがとうございました。その列の各行に統計情報のデータテーブルが付いた列を追加する方法を知っていますか? –

1

私はあなたがほしいと思うのはunion allだと思います。このような何かを:あなたはループが起こっている場合は

proc sql; 
    create table wanted_all_zips as 
     select stats 
     from ((select z.* from zipcode1) union all 
       (select z.* from zipcode2) union all 
       (select z.* from zipcode3) 
      ) z; 
+0

私はコードは本当に厄介得ることができ、各郵便番号のためにこれを書き出すことにしたくないテーブルがたくさんあります。郵便番号から言う方法はありますか?<---そうですが、郵便番号組合で始まるすべてです。 –

2

DATA STEPをコロン修飾子とともに使用して、それらをすべて付加します。 INDSNAMEオプションはソースデータを識別します。私は、あなたがループ内でやっていることはおそらく、データセットの分割を必要としない別の方法で行うこともできると推測します。スペースの問題でない限り、SASのデータを分割しないことが標準的に推奨されています。

data want; 
    length source source_file $256.; 
    set zipcode: indsname=source ; 
    source_file = source; 
run; 
関連する問題