format

Alterando Comprimento de Campo Novo no SAS

Muitas vezes no SAS precisamos criar novos campos. No entanto, é preciso saber lidar com o comprimento dos campos. Por exemplo, suponha que você tenha uma tabela com informações de vendas das suas lojas:

Leia mais…

Anúncios

Formatando Datas no SAS

Muitas vezes você vai ter que lidar com datas no SAS que estão no formato numérico ou caractere. Vamos abordar algumas formas de converter um campo para o formato numérico.

Aqui nós vamos criar uma base de dados no SAS para fazer essas conversões. Vamos supor que você tenha uma base de dados na sua loja com as datas em que você comprou os produtos que revende e o valor que pagou por cada um. Você recebe então uma base que se chama Compras com duas variáveis DT_Compra1 e Vlr_Compra, ambas são numéricas:

tabela_sas_uni0

Nesse caso, como vamos converter a variável compra no formato numérico para uma data?

Veja que a data está em formato numérico onde os 4 primeiros dígitos representam o ano, seguidos de 2 dígitos representando o mês e outros 2 representando o dia, para realizar a conversão nós utilizamos a função INPUT seguida do FORMAT:

data formata_data; 
	set compras; 
	dt_compra1 = input(dt_compra1,yyyymmdd8.); 
	format dt_compra1 yyyymmdd8.; 
run;

E obtemos assim o seguinte resultado: tabela_sas_uni

Como vocês podem ver, agora nossa variável é uma data. Isso facilita muito na hora de fazer análises e também cálculos com datas.

Agora, vamos analisar o que aconteceria se tivéssemos uma situação em que a variável data estivesse em formato de texto:

tabela_sas_uni2

Nesse caso, poderíamos primeiro converter a variável DT_Compra1 para uma variável numérica utilizando a função PUTpara depois utilizar a função INPUTpara converter o número para uma data:

data formata_data2;
	set compras;
	dt_compra1 = input(put(dt_compra1,8.),yyyymmdd8.);
	forma dt_compra1 yyyymmdd8.;
run;

tabela_sas_uni3

Simples não?

BÔNUS: O SAS UNIVERSITY E COMO CRIAR UMA TABELA COM DATALINES

Codigo_SAS_Uni

BÔNUS 2: NÃO SE ATRAPALHE AO USAR DATA COM MAX OU MIN NO PROC SQL:

Ao utilizar o proc sql, muitos se atrapalham quando tentam obter a maior data utilizando a função max e acabam tendo como resultado um número ao invés da data. Sempre que você utilizar a função MAX no proc sql, não se esqueça de utilizar format. Exemplo:

proc sql;
	create table data_maxima as
	select *, max(dt_compras1) as maior_data format=date9.
	from compras;
run;