2012-03-16 7 views
0

私が持っているコーディングの問題を助けることができるのだろうかと思っています。SASは列を動的に数え、それぞれを集計するコード

背景 - 一部のファイルをインポートし、そのファイルのデータを使用して投影を実行するプロジェクトがあります。ファイルの内容によって、出力のサイズのいくつかの側面が決まります。単純に、ロードされたデータの値は、後続のテーブルのサイズと形状を変化させます。

次のコードは、この問題の例です。

読み込まれるデータは、可変年の開始(wf2009、2009年が最初の年です)と可変範囲(この例は2009年から2030になりますが、これも変わります)があります。

私は続行するかどうかはわかりません
proc summary data= labeled_proj_data_hc; 
class jurisdiction specialty measure; 
types jurisdiction*specialty*measure; 
VAR wf2009--wf2030; 
output out= sum_labeled_proj_data_hc 
    sum(wf2009) = y2009 
    sum(wf2010) = y2010 
    sum(wf2011) = y2011 
    sum(wf2012) = y2012; 
run; 

は次のとおりです。それぞれの列の合計を求めるラインのシーケンスでは

sum(wf2009) = y2009 
sum(wf2010) = y2010 
sum(wf2011) = y2011 
sum(wf2012) = y2012; 

、どのように私はこれを動的にすることができます開始年となるよう変数から値が取り込まれ、それも可変である昨年まで毎年増加します。

誰もが同様の問題を解決しましたか?

乾杯、

答えて

1

は、必要な変数の名前を変更していますか?そうでなければ:ワイルドカード演算子を使って 'wf'で始まるすべての変数にアクセスし、SUM =を出力文に入れて元の名前を保存します。

したがって、procサマリーは次のようになります。

proc summary data= labeled_proj_data_hc; 
class jurisdiction specialty measure; 
types jurisdiction*specialty*measure; 
VAR wf: ; 
output out= sum_labeled_proj_data_hc 
    sum=; 
run; 
+0

ありがとうKeith。これはうまくいくかもしれません。私が月曜日に仕事に戻るときに、私は見ていきます。 P.S.いくつかの段階で名前を変更して、他のサマリー・メジャーを追加できるようにする必要がありますが、これは独自のステップで行う方が簡単かもしれません。 – underscores

+1

さらにメジャーを追加する場合は、AUTONAMEオプションを使用します。このオプションは変数名の後にサマリー(合計、平均など)を付加します。例えばsum = mean =/autoname。代わりに、DICTIONARY.COLUMNSから変数名を読み込み、PROC SUMMARYで使用される必要な式を作成することができますが、これは可能ですが少し面倒です。 – Longfish

+1

注:私はあなたに投票しますが、うーん、私は担当者がいません。 – underscores

関連する問題