BookmarkSubscribeRSS Feed
Lucasmarques94
Calcite | Level 5

Boa tarde pessoal, estou com um seguinte caso, possuo uma tabela que se chama tabulação nela se encontra todas as informação de atendimentos feito pelos operadores do CALL CENTER, nesse tabela tem as seguintes colunas NOME DO OPERADOR, DATA, COMPLEXIDADE DO ATENDIMENTO, MOTIVO. 

Eu preciso selecionar uma amostra dessa tabela que seja 55% baixa complexidade, 35% media complexidade e 10% de alta complexidade para cada operador. Exemplo: Lucas(alta, baixa, media), Ana(baixa), Bruna(media, alta), Andre(alta) e etc...AMOSTRA: Lucas(alta), Ana(baixa), Bruna(alta), Andre(alta) e etc...Quero que seja uma amostra para operadores e que no final o somatório de todas essas amostras correspondam a esse percentual que é exatamente por operadores, exemplo numa base eu tenho 100 operadores preciso que seja escolhido 55 baixa complexidade, 35 media complexidade e 10 alta complexidade, lembrando que a base pode variar o tamanho com o quantitativo de operadores.

2 REPLIES 2
wilkoba
SAS Employee

Você verificou a declaração strata no PROC SURVEYSELECT ?

 

proc surveyselect data=work.bweight_sorted
    out=work.sample_5000_obs_by_group
    seed=1234
    sampsize=5000;
    strata boy / alloc=prop;
run;

 Acho que este artigo pode te ajudar: 

3 Ways to Easily Create a Random Sample in SAS - SAS Example Code

E a documentação oficial tem vários outros exemplos e formas que podem te ajudar: 

PROC SURVEYSELECT: Syntax :: SAS/STAT(R) 9.22 User's Guide

 

Lucasmarques94
Calcite | Level 5
Eu tenho esse código:

/* Sort both data sets by strata */
proc sort data='TABELA MULTISKILL BASE'n;
by operador;
run;

proc sort data=maxsizetb;
by operador;
run;

/* Initial sample using SAMPRATE */
proc surveyselect data='TABELA MULTISKILL BASE'n samprate=100 out=A;
strata operador;
run;

/* Split out the strata that have a max size */
data B1 B2;
merge A (in=inA) maxsizetb (in=inMaxSize);
by operador;
if inA and inMaxSize then output B1;
else if inA then output B2;
run;

/* Apply the max size using the N=<data set> and SELECTALL Options */
proc surveyselect data=B1 N=maxsizetb (rename=(_maxsize_ = _NSIZE_)) out=C selectall;
strata operador;
run;

/* The final sample is a combination of B2 and C */
data final;
set B2 C;
run;

a tabela multiskill é onde tem todas as informações que eu preciso, e a tabela maxsizetb tem o nome de cada um dos operadores e o numero 1, ou seja, nesse projeto ele seleciona uma amostra para cada um dos operadores, porem como eu disse essa amostra não segue uma condição que é selecionar 1 amostra por operador mas que tambem siga um padrao já predefinido da complexidade, que é 55% baixa, 35% media e 10% alta. Ele simplesmente seleciona aqueles casos eu que se tem mais atendimentos.

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

Discussion stats
  • 2 replies
  • 426 views
  • 1 like
  • 2 in conversation