2016-12-01 7 views
0

procサマリーで新しい統計を作ることはできますか?各列のすべての値を乗算します。 SASはとても堅いので、私は狂ってしまいます。proc summary with statistic "multiply"

data test;             
    input b c ;         
    datalines;             
    50 11          
    35 12           
    75 13          
    ; 

所望の出力は、50 * 35 * 75、11 * 12 * 13、及び_FREQあろう(PROC要約の正常出力であるように)

+0

なぜPROC手段を使用する必要がありますか?データステップは、それ以前に受け入れられるか、あるいは完全に受け入れられるか? – Reeza

+0

はい、* proc summary *の代わりにdataステップが受け入れられます。私はちょうど自分自身の統計量を選択できるはずだと思った。 – Erosennin

+0

いいえ、procは特定の統計量を意味し、docにはリストがあります。http://support.sas.com/documentation/cdl/ja/proc/69850/HTML /default/viewer.htm#p0v0y1on1hbxukn0zqgsp5ky8hc0.htm – Reeza

答えて

1

これは珍しい集合体であるあなたは、本質的にロールバックする必要があるのであなた自身の。データステップはこれをループさせるので、RETAINを使用して行ごとに値を保持し、最後のレコードで結果を出力することで、簡単に実行できます。

Data want; 
    Set have end=eof; 
    Retain prod_b prod_c; 
    prod_b = prod_b * b; 
    prod_c = prod_c * c; 
    Freq= _n_; 
If eof then OUTPUT; 
    Keep prod: freq; 
Run; 
+0

ありがとう! – Erosennin