1
resposta

É possível usar SUM() no PROC FREQ?

Olá, boa noite.

Gostaria de saber um tema assim: soma da quantidade de segundos (NR_DURACAO) por assunto (NM_ASSUNTO).

Tentei usar um PROC FREQ, mas ele não soma meu NR_DURACAO, traz um por linha.

É possível fazer isso usando o PROC FREQ?

Obrigado

1 resposta

Oi, Rodrigo, tudo bem?

Peço desculpas pelo tempo que aguardou por uma resposta.

O PROC FREQ é usado no SAS para analisar a frequência de ocorrência de valores. Como neste caso o nosso foco é realizar a soma de NR_DURACAO conforme NM_ASSUNTO, não é necessário usar PROC FREQ.

Uma forma é trabalhar diretamente com PROC SQL, desta forma:

proc sql;
   create table resultado as
   select NM_ASSUNTO, sum(NR_DURACAO) as total_duracao
   from dados
   group by NM_ASSUNTO;
quit;

Acima, temos um exemplo segundo as informações que você compartilhou. A partir de um conjunto de dados, realizamos um SELECT, apresentamos cada assunto (NM_ASSUNTO) e utilizamos SUM() para somar as durações. No final, realizamos um agrupamento levando em conta os dados contidos em NM_ASSUNTO.

Outra maneira de resolver o mesmo problema é utilizando PROC MEANS (comum na análise de estatísticas descritivas, como soma, média, mínimo, máximo etc). Observe o código abaixo:

proc means data=dados sum;
   var NR_DURACAO;
   class NM_ASSUNTO;
   output out=sum_dados sum=TOTAL_SEC;
run;

Aqui, estamos utilizando NM_ASSUNTO como variável de classificação, a partir dela, somaremos os valores presentes em NR_DURACAO.

output out=sum_dados sum=TOTAL_SEC especifica o nome do conjunto de dados de saída como sum_dados e define o nome da variável de saída como TOTAL_SEC. A saída conterá as somas calculadas!

Ao visualizarmos o resultado, veremos uma tabela com uma coluna apresentando a frequência de NM_ASSUNTO e outra com as somas de NR_DURACAO (além de uma coluna com os assuntos).

Rodrigo, espero que isso possa te ajudar! Contudo, vale ressaltar que como é um assunto externo aos cursos da Alura e que não tenho acesso ao cenário completo do seu projeto, outros testes terão de ser feitos a fim de obter o resultado esperado, mas espero que esta resposta seja um bom ponto de partida para a resolução do seu problema!

Um forte abraço.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!