Usando dia, mês e ano para formar uma data no SAS

Alguns dos posts mais visitados aqui são os de formatação de datas no SAS. Você pode ver Formatação de Datas no SAS e esse Convertendo diferentes formatos de data no SAS, como exemplos. Agora, vou mostrar uma outra função que eu desconhecia, a MDY( ). Ela é útil, pois além de intuitiva, serve para quando você tem que lidar com os campos dia, mês e ano, separados. No exemplo abaixo, temos uma coluna com o dia, outra com o mês e uma última com o ano. Vamos criar um campo no formato de data, na ordem mês, dia e ano:

data exemplo;
    input dia mes ano;
    cards;
2 5 2018
4 10 2018
1 11 2018
;
run;
data exemplo_mdy;
    set exemplo;
    data_mdy = mdy(mes,dia,ano);
    format data_mdy mmddyy10.;
run;

Agora, você deve estar pensando que é muito mais fácil enxergar as datas no formato dia, mês e ano. Como estamos acostumados aqui no Brasil. Isso é simples também, basta alterar o argumento do format:

data exemplo_dmy;
    set exemplo;
    data_mdy = mdy(mes,dia,ano);
    format data_mdy ddmmyy10.;
run;

Esse método pode ser bom para o caso em que você recebe a data em formato string. Veja o exemplo abaixo, em que convertemos uma data em formato texto, cuja sequência é dada por ano, mês e dia:

data exemplo_2;
    input data_texto;
    cards;
20180502
20180410
20181101
;
run;
data exemplo_dmy_texto;

    set exemplo_2;
    
    dia = substr(data_texto, 7, 2);
    mes = substr(data_texto, 5, 2);
    ano = substr(data_texto, 1, 4);
    
    data_mdy = mdy(mes,dia,ano);
    
    format data_mdy ddmmyy10.;

run;

É possível ter algum outro método mais simples, é claro. Mas estes, junto com os dos meus outros posts, são os que eu conheço.Se tiver algum diferente, compartilha aí!

Bons estudos!

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *