SAS: Representatividade de cada linha e Soma Cumulativa

Recentemente me pediram ajuda com o SAS, para que fosse possível colocar, para determinada coluna, o quanto cada linha representava (%) da soma total dessa coluna. Na sequência, seria preciso colocar a soma cumulada desses percentuais. Acho bastante útil essa manobra. O curioso, é que no proc freq dá para obter a frequência acumulada, mas não o valor. Por isso tive que fazer de um jeito um pouquinho mais trabalhoso:

/*cria uma tabela de exemplo*/
 data exemplo;
     input id $ valor;
     cards;
 APEOEIQK 100
 BDJQOPEX 200
 BCAPEORP 300
 XRALPOED 400
 XAWPELOR 500
 ;
 run;

Captura de Tela 2018-06-12 às 06.34.29

/* cria coluna com representatividade (%) de cada linha*/
 proc sql;
 create table exemplo_v2 as
 select id
         , valor
         , valor/total_valor as percentual format=percent7.1
 from (select *
              , sum(valor) as total_valor
                from exemplo)
 group by 1;
 run;

Captura de Tela 2018-06-12 às 06.36.26

O passo a seguir não é necessário, mas como eu já o fiz, resolvi colocar:

/* organiza com percentual em ordem decrescente */
 proc sort data=exemplo_v2; 
     by descending percentual; 
 run;

Captura de Tela 2018-06-12 às 06.38.29

/* cria coluna cumulativa */
 data exemplo_v3;
     set exemplo_v2;
     percentual_acumulado+percentual;
 run;

Captura de Tela 2018-06-12 às 06.41.05

Ou então:

/* cria coluna cumulativa */
data exemplo_v3;
    set exemplo_v2;
    attrib percentual_acumulado format=percent7.1 ;
    percentual_acumulado+percentual;
run;

Captura de Tela 2018-06-12 às 06.42.08

Acredito que no proc tabulate e no proc freq seja possível fazer isso. Vou tentar depois e, se eu conseguir, posto em seguida aqui.

Anúncios

2 comentários

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s