<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic proc survey select in Forum em português</title>
    <link>https://communities.sas.com/t5/Forum-em-portugu%C3%AAs/proc-survey-select/m-p/901620#M1376</link>
    <description>&lt;P&gt;&lt;SPAN&gt;Eu tenho esse código:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Sort both data sets by strata */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;proc sort data='TABELA MULTISKILL BASE'n;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;by operador;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;proc sort data=maxsizetb;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;by operador;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Initial sample using SAMPRATE */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;proc surveyselect data='TABELA MULTISKILL BASE'n samprate=100 out=A;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;strata operador;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Split out the strata that have a max size */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;data B1 B2;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;merge A (in=inA) maxsizetb (in=inMaxSize);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;by operador;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if inA and inMaxSize then output B1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;else if inA then output B2;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Apply the max size using the N=&amp;lt;data set&amp;gt; and SELECTALL Options */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;proc surveyselect data=B1 N=maxsizetb (rename=(_maxsize_ = _NSIZE_)) out=C selectall;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;strata operador;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* The final sample is a combination of B2 and C */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;data final;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;set B2 C;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;a tabela multiskill é onde tem todas as informações que eu preciso (nome do operador, dia do atendimento, complexidade e etc), 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 também&amp;nbsp;siga um padrão&amp;nbsp;já predefinido da complexidade, que é 55% baixa, 35% media e 10% alta. Ele simplesmente seleciona aqueles casos eu que se tem mais atendimento. Como eu faço para colocar este outro critério? Pode ser outro código&amp;nbsp;sem ser o survey select. Resumindo o projeto: tenho uma tabela base com todos os atendimentos realizados no callcenter e preciso selecionar uma amostra dessa tabela para fazer monitoria dos atendimentos, essa amostra consiste em selecionar 1 amostra para cada um dos operadores presentes nessa tabela base, e que essa amostra seja 55% baixa complexidade, 35% media complexidade e 10% alta complexidade, esta porcentagem é baseada na quantidade de operadores distintos que tem na tabela base, exemplo se eu tiver 100 operadores diferentes a amostra final tem que ser 55 baixa, 35 media e 10 alta e assim sucessivamente.&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Sun, 05 Nov 2023 11:46:42 GMT</pubDate>
    <dc:creator>Lucasmarques94</dc:creator>
    <dc:date>2023-11-05T11:46:42Z</dc:date>
    <item>
      <title>proc survey select</title>
      <link>https://communities.sas.com/t5/Forum-em-portugu%C3%AAs/proc-survey-select/m-p/901620#M1376</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Eu tenho esse código:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Sort both data sets by strata */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;proc sort data='TABELA MULTISKILL BASE'n;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;by operador;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;proc sort data=maxsizetb;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;by operador;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Initial sample using SAMPRATE */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;proc surveyselect data='TABELA MULTISKILL BASE'n samprate=100 out=A;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;strata operador;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Split out the strata that have a max size */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;data B1 B2;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;merge A (in=inA) maxsizetb (in=inMaxSize);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;by operador;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if inA and inMaxSize then output B1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;else if inA then output B2;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Apply the max size using the N=&amp;lt;data set&amp;gt; and SELECTALL Options */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;proc surveyselect data=B1 N=maxsizetb (rename=(_maxsize_ = _NSIZE_)) out=C selectall;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;strata operador;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* The final sample is a combination of B2 and C */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;data final;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;set B2 C;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;a tabela multiskill é onde tem todas as informações que eu preciso (nome do operador, dia do atendimento, complexidade e etc), 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 também&amp;nbsp;siga um padrão&amp;nbsp;já predefinido da complexidade, que é 55% baixa, 35% media e 10% alta. Ele simplesmente seleciona aqueles casos eu que se tem mais atendimento. Como eu faço para colocar este outro critério? Pode ser outro código&amp;nbsp;sem ser o survey select. Resumindo o projeto: tenho uma tabela base com todos os atendimentos realizados no callcenter e preciso selecionar uma amostra dessa tabela para fazer monitoria dos atendimentos, essa amostra consiste em selecionar 1 amostra para cada um dos operadores presentes nessa tabela base, e que essa amostra seja 55% baixa complexidade, 35% media complexidade e 10% alta complexidade, esta porcentagem é baseada na quantidade de operadores distintos que tem na tabela base, exemplo se eu tiver 100 operadores diferentes a amostra final tem que ser 55 baixa, 35 media e 10 alta e assim sucessivamente.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 05 Nov 2023 11:46:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Forum-em-portugu%C3%AAs/proc-survey-select/m-p/901620#M1376</guid>
      <dc:creator>Lucasmarques94</dc:creator>
      <dc:date>2023-11-05T11:46:42Z</dc:date>
    </item>
    <item>
      <title>Re: proc survey select</title>
      <link>https://communities.sas.com/t5/Forum-em-portugu%C3%AAs/proc-survey-select/m-p/911901#M1387</link>
      <description>&lt;P&gt;Pode tentar isso?&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;PRE&gt;/* Supondo que a tabela 'TABELA MULTISKILL BASE'n seja a tabela base com informações sobre atendimentos */
/* Supondo que 'maxsizetb' tenha os operadores e uma variável que indica a complexidade */

/* Crie uma tabela com as proporções desejadas para cada complexidade */
data proporcoes;
input complexidade $ percentagem;
datalines;
baixa 55
media 35
alta 10
;


/* Crie uma tabela com as proporções desejadas para cada operador */
data operador_proporcoes;
set 'TABELA MULTISKILL BASE'n;
by operador;
if first.operador then total_atendimentos=0;
total_atendimentos+1;
output;
if last.operador then do;
percentual_atendimentos=total_atendimentos;
output;
end;
drop total_atendimentos;
run;


/* Crie uma tabela combinando as proporções de complexidade e operador */
data combinacao_proporcoes;
merge proporcoes operador_proporcoes;
by complexidade;
drop percentagem;
run;


/* Classifique a tabela base por complexidade em ordem decrescente */
proc sort data='TABELA MULTISKILL BASE'n;
by descending complexidade;
run;


/* Inicialize a tabela final */
data final;
drop percentual_atendimentos;
set 'TABELA MULTISKILL BASE'n;

/* Adicione uma variável aleatória entre 0 e 1 para a amostragem */
random_number = ranuni(0);

/* Mescla com as proporções de complexidade e operador */
if merge(combinacao_proporcoes) = 0 then stop;

/* Selecione apenas os registros que atendem aos critérios de amostragem */
if random_number &amp;lt;= percentagem / percentual_atendimentos then output;
run;


/* Agora a tabela 'final' contém a amostra desejada ponderada por complexidade para cada operador */&lt;/PRE&gt;</description>
      <pubDate>Thu, 18 Jan 2024 02:56:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Forum-em-portugu%C3%AAs/proc-survey-select/m-p/911901#M1387</guid>
      <dc:creator>ronaldosc</dc:creator>
      <dc:date>2024-01-18T02:56:27Z</dc:date>
    </item>
  </channel>
</rss>

