이전 변수의 분류 인 다른 변수 (동일한 데이터 세트에서도 괜찮습니다)를 빌드하는 방법을 찾고 싶습니다. 버킷의 수를 선택합니다 (백분위 수를 컷오프로 사용하는 exemples의 경우 : p10, p20, p30
등). 이제 변수의 백분위 수를 proc univariate
으로 추출하는 작업을 수행합니다. 그러나 이것은 백분위 수 (내 cutoffs) 만 제공하고 백분위 수를 사용하여 수동으로 새 변수를 만들어야합니다. 컷오프 및 버킷 수를 입력으로 제공하는이 새 변수를 어떻게 만들 수 있습니까? 당신이 가정 사전SAS에서 숫자 변수의 코드화
0
A
답변
0
에서
덕분에 동일한 비율 크기의 양동이를 원하는, 다음 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;
10은 P 값의 가장 낮은 공통 분모입니다. 100/10 = 10이므로 PROC RANK
에서 10 개의 그룹이 필요합니다.
끝에있는 데이터 단계는 찾고있는 컷오프를 사용하여 그룹을 결합합니다.
감사합니다. 아마 그룹 = 10으로 proc 순위는 괜찮습니다. 그러나 나는 왜 많은 관찰이 proc 단변 산출물을 이용한 분류와 비교하여 다른 양동이에 들어가는 지 알지 못합니다. – TheZone
@GiacomoRosaspina 데이터 세트에 많은 관계가 있습니까? – Reeza
@Reeza 어떤 관계가 있는지 모르겠다 – TheZone