루프의 모든 값을 저장하지 않고 5 백분위 수와 95 백분위 수를 계산하는 방법이 있습니까?SAS에서 루프의 값을 저장하지 않고 백분위 수를 계산할 수 있습니까?
%let it=10000;
data test;
length arrayStore$32767;
arrayStore='';
sum=0;
min=99999;
max=-99999;
do i=1 to ⁢
number=rand('Uniform');
sum + number;
if number<min then min=number;
if number>max then max=number;
arrayStore=catx(' ',arrayStore,round(number,0.1));
end;
mean=sum/⁢
P5=0; *?;
p95=0; *?;
* count numbers in arrayStore;
do j=1 to countw(arrayStore, ' ', 's');
end;
run;
나는 이것이 가능하다고 생각하지 않지만, 이것을 달성하는 최선의 선택은 무엇인가?
문자열에 값을 저장하고 정렬하여 x 번째 포스팅을 찾으십니까? 10k 숫자 변수에 저장 하시겠습니까?
이미 다른 레코드 (행)에 숫자를 저장하려고했지만 34Gb 데이터 세트로 이어 지므로 정렬에 오랜 시간이 걸리고 평균과 P2_5 및 P97_5 값만 필요합니다. 더 적은 값을 저장하여 컴퓨팅 속도를 높이려고합니다.
감사합니다.
proc 수단 또는 단 변수를 사용하는 대신 데이터 단계에서 요약 통계를 계산하려는 이유가 있습니까? – Reeza
@Reeza 예, 정렬 할 필요없이 2.5와 97.5 백분위 수 (프로 시저 의미가 아님)를 원합니다 (단 일산 변수가 아님) –
proc은 무엇을 의미합니까? 작업에 가장 적합한 도구 – Reeza