2016-10-07 15 views
0

私は約800の観測データセットを持っています。私は14の変数の頻度を取得したい。私は形状(例)によってこれらの変数の頻度を取得したい。 3つの異なる形があります。多くの頻度テーブルをSASに積み重ねる方法

これを実行する例は、明らかに次のようになります。 proc freq;テーブルの色;形によって;走る;

しかし、私は42の頻度表を必要としません。私は左側に14の変数のリストを持っている1つの頻度テーブルが欲しいです。上の見出しはshape1 shape2 shape3を持ち、その下に各変数の頻度があります。 データセットをパーセンテージで転置してお互いの上に積み重ねたように見えます。

私はこれを行う必要があるいくつかの組み合わせがあります。私は約5つの異なる変数グループを持っており、3つの異なるグループを使用してテーブルを作成する必要があります(約15のテーブルが必要です)。私が議論した最初の例は、そのようなグループの一例です。

助けていただけたら幸いです!

+0

プロシージャ表を参照してください。これはステロイドのproc freqのようなものです。 – Quentin

+0

https://gist.github.com/statgeek/e0903d269d4a71316a4e – Reeza

+0

@ Quentin-私はプロット表を試しましたが、欠けているデータが気に入らないものがあります。 1つの変数に応答がないという観測がある場合は、テーブルから完全に削除されることは望ましくありません。私はまだ観察を他の変数に含めたい。ただし、欠落しているオプションには、欠落しているデータの頻度が含まれます。私はそれも欲しくない。これをprocの表にする方法はありますか? – Smky29

答えて

0

proc meansおよびproc transposeを使用。私はあなたにいくつかの例を与えます。カテゴリを追加できます。

proc means data=sashelp.class nway n; 
    class sex age; 
    output out=class(drop=_freq_ _type_) n=freq; 
run; 

proc transpose data=class out=class(drop=_name_) prefix=AGE; 
    by sex; 
    var freq; 
    id age; 
run; 

data class_sum; 
    set class; 

    array a(*) age:; 
    age_sum = sum(of age:); 

    do i = 1 to dim(a); 
     a(i) = a(i)/age_sum; 
    end; 
    drop i; 
run; 
+0

Sozynski、私はこれを動作として見ることができます。私はパーセンテージとして表現された周波数を望んでいます。配列を使用してAge11-Age16の合計を作成し、各列を合計で除算することができます。 #sをパーセンテージで表現する効率的な方法はありますか? – Smky29

+0

いいですね。私は例にメソッドを追加しました。 –

+0

ありがとうロバート、これは本当に役立ちます! – Smky29

関連する問題