Tenho o seguinte código que no caso seria para selecionar uma amostra de 1 atendimento para cada operador e que essa amostra seja 55% baixa complexidade e 35% media complexidade e 10% alta complexidade:
/* Etapa 1: Classificar os dados pelo operador e pela complexidade */
proc sort data=QUERY_FOR_MULTISKILLS;
by operador complexidade;
run;
/* Etapa 2: Calcular o tamanho da amostra para cada operador e complexidade */
proc freq data=QUERY_FOR_MULTISKILLS noprint;
tables operador*complexidade / out=amostra_tamanho nofreq nopercent norow;
run;
/* Etapa 3: Calcular a porcentagem para cada operador e complexidade */
data amostra_porcentagem;
set amostra_tamanho;
total_obs + count;
run;
/* Etapa 4: Amostragem estratificada para atingir a distribuição desejada */
data amostra_final;
set QUERY_FOR_MULTISKILLS;
if complexidade = 'Baixa complexidade'n then
weight = count / total_obs * 0.55;
else if complexidade = 'Média complexidade'n then
weight = count / total_obs * 0.35;
else if complexidade = 'Alta complexidade'n then
weight = count / total_obs * 0.10;
drop total_obs;
run;
/* Etapa 5: Amostragem aleatória ponderada por operador e complexidade */
proc surveyselect data=amostra_final
method=urs
out=amostra_ponderada
outhits;
strata operador;
weight weight;
runoncelist operador / groupprior;
run;
Porem esta aparecendo este erro: ERROR 180-322: Statement is not valid or it is used out of proper order. Como resolver este problema?
Please show us the entire log whenever there is an error. We don't want you to show us just the error messages, we need to see everything in the log down to and including the error message.
Please take a careful look at the documentation for PROC SURVEYSELECT.
The SIZE statement does not have an equal sign. There is no RUNONCELIST command. And there may be other errors which I didn't spot.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.