PROC IMLを使用してクロステーブルを準備する必要があります(このような場合はPROC FREQを使用するのが一般的ですが、これは学校のプロジェクト用であり、IMLの使用を強制されました)。
データセットは次のようになります。
オレンジ
Bアップル
Cオレンジ
Bマンゴー
アップル
そして、出力には、基本的に、列にORANGE APPLE MANGO、行にABC、マトリックスに頻度が含まれている必要があります。
オレンジアップルマンゴー
A10 0
B 0 2 1
C 1 0 0
追加するために編集:
私は解決策に近づいていますが、特定の条件を満たす行を選択する際にまだ問題があります-コードの「(...)」。以下に私が思いついたものを見つけることができます:
PROC IML;
USE work.data;
read all var {fruits } into fruits;
read all var {names} into names;
read all var {fruits names} into matrix;
close;
u1 = unique(fruits);
u2 = unique(names);
s = j(ncol(u2),ncol(u1),0);
do i=1 to ncol(u1);
do z=1 to ncol(u2);
idx=loc(…);
s[z,i]=countn(idx);
end;
end;
print s;