2016-08-31 7 views
0

私はSASの新しいユーザーです。あなたがこれで私を助けてくれることを願っています。 たとえば、35個のカテゴリ変数を持つデータセットがあります。

2つのカテゴリ変数とそのp値のすべての可能な組み合わせの間の独立性テストの結果で構成される表を作成します。
私はproc freqを使用しましたが、私は一度に2つの変数を手動でしかできません。時間を節約するために、私はマクロを使うことを考えていますが、どうやってそれを行うのか分かりません。SAS Independence Test Loop

出力が表提案のため
Variable1 | Variable2 | P-value
----------------------------------------------
cat1 | cat2 | p-value of cat1 & cat2
cat1 | cat3 | p-value of cat1 & cat3
...
cat34 | cat35 | p-value of cat34 & cat35

開放されています。ありがとう!

編集:私の現在のコードがある。これは、私はあなたがこの使用して次の操作を実行することができるはずだと思うの表に
X | Y | P-value
-----------------------------------
cat1 | cat2 | p-value of cat1 & cat2

+1

を行うことです、あなたは一つの変数のペアでこれを行うために使用したいコード、してください、といくつかの変数を持ついくつかのサンプルデータを含めることはできますか? – Joe

+0

ええ、ここでもう少し詳細が必要です –

+0

私は自分の答えを更新しました。 – user667489

答えて

1

を与える
proc freq data = mydata; tables cat1*cat2/chisq; output out=myoutput pchi cramv; run;
proc sql; create table myoutput as select "cat1" as X, "cat2" as Y, P_PCHI from myoutput; quit;
あなたのproc freq呼び出し内のテーブルステートメントの構文:

tables (cat1-cat35) * (cat1-cat35); 

私はSASデータセットに所望の出力をキャプチャするようにコードを適応してきました:

data example; 
    do cat1 = 'a','b','c'; 
    do cat2 = 'd','e','f'; 
     do cat3 = 'g','h','i'; 
     output; 
     end; 
    end; 
    end; 
run; 

ods output chisq = mychisq(where = (statistic = 'Chi-Square')); 

proc freq data = example; 
tables (cat1-cat3) * (cat1-cat3)/chisq; 
output out=myoutput pchi cramv; 
run; 

これはあなたに若干異なるフォーマットで出力が得られますが、あなたはそれを整理することができるはずですそこから。すべてのペアをループに

+0

これは正常に動作しますか?この構文は私にとっては全く役に立ちません –

+0

@JonathanWilson Exampleが追加されました。 – user667489

0

一つの方法は、

do i=1 to 34; 
    do j=i+1 to 35; 
     .....