その後PROC RANK
はあなたが探しているしたいだけかもしれません、あなたが等しい割合サイズのバケットをしたいと仮定。あなたP20、P40、...、P80のカットオフ値と同等でなければなりません(0命名.. 4)5つのグループを、与える
data test;
do i=1 to 100;
output;
end;
run;
proc rank data=test out=test2 groups=5;
var i;
ranks grp;
run;
。
等しくないバケット(P10、P40、P60、およびP90)が必要な場合は、最低レベルを選択してグループを結合する必要があります。上記のグループを使用して:
%let groups=10;
proc rank data=test out=test2 groups=&groups;
var var;
ranks grp;
run;
/*
P = (grp+1)*&groups
Cutoffs 10, 40, 60, 90
implicit 5 new groups
*/
%let n_cutoff=4;
%let cutoffs=10, 40, 60, 90;
data test3(drop=_i cutoffs:);
set test2;
array cutoffs[&n_cutoff] (&cutoffs);
P = (grp+1)*&groups;
do _i=1 to &n_cutoff;
if P <= cutoffs[_i] then do;
new_grp = _i-1;
leave;
end;
if _i = &n_cutoff then
new_grp = _i;
end;
run;
は、P値の最小の共通分母です。 100/10 = 10だから、PROC RANK
から10グループが必要です。
最後のデータステップは、探しているカットオフを使用してグループを結合します。
ありがとうございました。おそらくグループ= 10のprocランクは大丈夫です。しかし、私は、なぜ単一変量のprocを用いた分類と比較して、多くの観察が異なるバケツに入っているのか分かりません。 – TheZone
@GiacomoRosaspinaあなたのデータセットにはたくさんの関係がありますか? – Reeza
@Reezaどのような結び付きがわからない – TheZone