Primeiras aulas do curso SAS parte 2: Interagindo bases de dados

SAS parte 2: Interagindo bases de dados

Calculando a idade - Introdução

Olá. Meu nome é Paulo Dio e seja bem-vindo à segunda parte do curso de SAS. Como esse curso é a segunda parte, eu recomendo fortemente que antes vocês façam a primeira parte do curso de SAS, manipulando bases de dados, em que aqui vamos simplesmente continuar o projeto que tínhamos começado na primeira parte, que são diversas análises que estamos fazendo para a empresa Alura Play, que é uma empresa de aluguel de jogos. Neste curso, vamos aprender diversas operações novas, no SAS, como aprender a fazer operações com datas, cálculos com datas para calcular a idade de cada cliente com a data de nascimento.

Vamos ver também diversos formatos de data que o SAS possuí, vamos ver a função MDY, a função INCK, que calcula intervalo de tempo entre duas datas. Depois, vamos ver como construir gráficos usando SAS. Tínhamos feito o cálculo da idade, vamos usar agora o PROC SGPLOT para construir um gráfico bem legal, bastante apresentável para mostrarmos para a Alura Play, e veremos como personalizar. Como colocar título, alterar eixos, mudar a cor, e assim por diante.

Também vamos ver como fazer uma classificação de variável. Por exemplo, a variável idade possui valores muito diferentes. Para analisar isso fica complicado. É mais fácil se agrupássemos em faixas, como clientes mais jovens, adultos, jovens adultos, e assim por diante. Podemos agrupar esses clientes. Veremos como fazer isso, como fazer a sumarização.

Também veremos como resolver um problema em que temos informações diferentes sobre os clientes em bases diferentes. Como juntar todas as informações em uma base só. Isso se chama cruzamento. Veremos como fazer esse cruzamento de bases usando tanto um data step com a opção merge, como também usando um PROCSQL. E inclusive vamos ver diversas outras opções, como por exemplo como fazer uma variável condicional, como fazer a sumarização nesse agrupamento de uma base com essa variável condicional, e como fazer subprocessos dentro de um SQL.

Por último, vamos ver que temos que fazer análises com diversos meses de diferença. Nas nossas bases de operações existem diversos meses em que a Alura Plays está trabalhando e ela vai gerando resultados de cada um deles. Precisamos fazer a análise para cada um. São processos que precisamos repetir com muita frequência.

Veremos algumas ferramentas, operações que podem nos ajudar a simplificar esses processos, como por exemplo como empilhar bases diferentes usando o SQL e o data step. Também veremos como consolidar bases que já estão empilhadas, e essas bases empilhadas vamos ver como separar em bases diferentes.

Finalmente, vamos ver os recursos chamados macros. Vamos pincelar muito rapidamente, porque é um assunto extenso, mas aqui vamos ver uma introdução de como podemos usar macro variáveis e macro funções que podem simplificar bastante esse processo de cruzamento das bases que precisamos fazer para cada referência que temos. Bora começar?

Calculando a idade - Transformando uma data

Vamos continuar trabalhando no nosso projeto para Alura Play. Dessa vez, o que eles querem saber é o perfil de idade dos nossos clientes. Eles querem fazer a estimativa e ter uma informação melhor sobre as características das pessoas que resolveram trabalhar com eles.

Antes de começar, vamos voltar para o SAS. Já fiz a declaração da biblioteca. Vou dar uma dica bem interessante. Sempre que abrimos nossa seção de SAS, tínhamos que lembrar de fazer a declaração da biblioteca porque ele perdia a declaração quando encerrávamos a seção. Existe uma forma de deixarmos isso dentro de um arquivo auto executável, em que sempre que iniciarmos a seção, um trecho de código pré-definido é executado, ao mesmo tempo em que nossa seção de SAS é iniciada. Isso facilita um pouco nossa vida, porque não precisamos ficar lembrando sempre de declarar a biblioteca.

Vou selecionar o código. Na barra de menu superior, do lado do botão de programador, existe o botão que são mais opções de aplicação. Vamos clicar nele. Depois, na primeira opção, que é editar arquivo auto executável. Nós podemos escrever nosso código. Copio a declaração da biblioteca. Podemos inclusive validar nosso código clicando no botão run. Ele mostra o que acontece quando executamos o código. Tudo funcionando, então podemos salvar.

Sempre que iniciarmos o SAS, nossa biblioteca da Alura já é declarada automaticamente também e isso facilita bastante. Mas alguns cuidados precisam ser tomados. por exemplo, vou manter essa declaração de biblioteca ainda no meu código, porque se eu passar para outra pessoa, talvez ela não tenha essa declaração automática da biblioteca no SAS dela e perde a informação.

Como configurar esses arquivos muda de acordo com cada versão do SAS que você usar. Fique atento a isso.

Vamos começar a trabalhar com nossa base de cadastros dos clientes. Vamos começar fazendo o PROCCONTENTS para relembrar o conteúdo da nossa base de clientes. Clientes_v2 é a base que criamos na parte um do curso, é a base de cadastro do cliente, mais a variável que contém o Estado em que o cliente mora, baseado na variável que criamos a partir do CEP.

Executando o código, temos a variável de CEP, e-mail, estado civil, nascimento, nome, sexo, telefone. O Estado é a variável que nós criamos e temos a variável de nascimento, que é a data de nascimento do cliente. Observe que essa variável é depoimento tipo caractere. Ou seja, a data de nascimento nessa base está como um texto. Calcular a idade nada mais é do que fazer uma conta. Sua idade é a data de hoje menos a data de nascimento. Esse intervalo de tempo é sua idade.

Precisamos fazer uma conta com essa idade. Vamos transformar essa variável de texto em numérica. Para isso, vimos na primeira parte que podemos usar um DATA. Vou nomear. Depois vou declarar a base de cadastro de cliente. Para fazer a transformação de texto para caractere, vou criar uma variável chamada data_nascimento. Ela vai receber o comando input, com os parâmetros de nascimento, a variável de texto que quero transformar em caractere, e depois o formato de numérico, por exemplo, best. Fecho o DATA com um comando de run. Seleciono tudo e executo.

Não funcionou. Vamos olhar a log. Significa que o SAS está tentando fazer uma conversão, não conseguiu e desistiu. O problema é que estamos usando um formato que não é adequado. Queremos transformar um texto em número, mas não é um texto qualquer, e nós não queremos também um número qualquer. Apesar do SAS ter dois tipos de variáveis, existem particularidades. As variáveis numéricas podem ser configuradas de certa forma que seja um número sim, mas um número que o SAS consegue entender como se fosse uma data.

Vamos ver nossa base de cadastro do cliente, usando o PROCPRINT. Essa variável de nascimento tem um ano, com um separador, depois o mês, outro separador, e o dia do nascimento. Ela é um texto que está com ano, mês e dia com separadores. Fica difícil o SAS simplesmente converter para um número se eu não falar para ele como ele tem que converter. Só falando que é um texto não adianta.

Precisamos nesse parâmetro passar um formato numérico de data. Assim o SAS vai entender que o texto contem uma data e ele tem que transformar para um número, que tenha uma data.

Antes de falar do formatos numéricos de data, vamos aprender um pouco mais do inglês. Como escrevo ano em inglês? Year. Como escrevo mês? Month. Como escrevo dia? Day. Isso não é tão importante. O importante é o que deixei em maiúsculo, a letra que começa cada termo. Para ano é Y, mês é M, e dia D. Os formatos de data do SAS geralmente usam essa estrutura. Nós usamos o formato de data dia mês e ano. Transformando, sendo que o SAS utiliza duas vezes a inicial, para dia escrevo DD, para mês escrevo MM, o ano fica YY. DDMMYY já é um formato de data do SAS que ele sabe que é dia, mês e ano.

Nossa variável do nascimento era ano, mês e dia. Ficaria YYMMDD. Então, temos um formato, lembrando que ele termina com ponto. Tentando executar novamente, deu um aviso, porque o formato não é suficiente. A variável de data é ano, mês e dia, mas o padrão do SAS é colocar dois dígitos para cada termo. Nosso formato tem quatro dígitos no ano. Como falar para o SAS que nossa data tem quatro dígitos no ano?

Vamos fazer uma conta rápida. Temos dois dígitos para o ano, dois para o mês e dois para o dia. Ele costuma colocar separadores entre eles. Quantos dígitos estamos usando ao todo? Dois para cada um, mais dois separadores, oito. Ou seja, o formato padrão do SAS usa oito dígitos ao todo. O nosso, como ano tem quatro dígitos, ficaria YYYY-MM-DD. Dez dígitos ao todo. No formato do SAS, escrevemos sempre só duas vezes cada letra.

Nós dizemos que tem dez dígitos nesse formato colocando um dez no final. Então fica YYMMDD10. Esse é um formato de SAS que começa com ano, vem para o mês, dia, o ano com quatro dígitos e mais dois separadores.

Agora não dá mais problema. Usando o PROCPRINT para ver a base, temos a variável de data de nascimento, que é numérica. Mas o preenchimento é meio maluco. Ele transformou em números estranhos. O que significa isso?

Calculando a idade - Entendendo o formato de data

Vamos entender o que aconteceu nessa variável de data nascimento que está armazenando um número estranho. Como você deve estar cansado de saber, o SAS só tem dois formatos de variáveis, numérico e texto. Como ele convencionou em armazenar uma data? Ele armazena como o número de dias que se passaram desde 1 de janeiro de 1960, por exemplo. Ou seja, se uma pessoa nasceu nessa data, a data estaria em zero. Só para provar para vocês, vamos fazer uma conta de padeiro. Uma pessoa nasceu em 1991. De 1960 até 1991, passaram-se 31 anos. São 11.387 dias. Se eu divido por 365, dá 31 anos.

Já vimos que podemos mudar o formato, como eu enxergo uma variável dentro de uma base, usando o comando de format. Vou usar o mesmo formato que estávamos usando para transformar a data de texto para numérico. Se eu executo, já muda. Agora, minha variável de caractere e a variável estão aparecendo da mesma forma.

Se eu não quiser usar esse formato e usar algo que estamos mais acostumados, como dia, mês e ano, é só trocar. Vimos como transformar o ano em 4 dígitos também, colocando o 10 no fim.

Costumamos ver essa separação por barras, mas aqui por exemplo está separado por traço. Para transformar de barra para traço, em inglês, traço é dash. Se antes do 10 eu colocar um D, de dash, o separador muda.

Existem outros formatos de data bem interessantes, que precisamos saber também, muito usados. Por exemplo, date9. Ele escreve o início do nome do mês por extenso, com três caracteres. Esse é um formato bastante usado.

Uma coisa interessante também que podemos conhecer é um formato YYMM, por exemplo. Aqui falo que quero o ano e o mês. Ele usa um M como separador. Se eu quiser cortar, escrevo um N no final. Tínhamos visto esse formato bastante usual em bases, é o ano mês. Temos a data expressa colocando primeiro o ano com quatro dígitos, depois o mês, com dois dígitos, sem o separador para ser um número puro. Isso é bastante importante para saber que se encontrarem uma variável numérica com a data que tínhamos visto antes, esse é o formato numérico que entende aquele formato que tínhamos visto antes.

Sobre o curso SAS parte 2: Interagindo bases de dados

O curso SAS parte 2: Interagindo bases de dados possui 247 minutos de vídeos, em um total de 67 atividades. Gostou? Conheça nossos outros cursos de Data Science em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Data Science acessando integralmente esse e outros cursos, comece hoje!

  • 1266 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 1266 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 1266 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 1266 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Conheça os Planos para Empresas

Acesso por 1 ano

Estude 24h/dia onde e quando quiser

Novos cursos todas as semanas