✆  55 (11) 3382-1503    |   ⌧  comercial@infomev.com.br       

Que tal praticar seus conhecimentos em SAS?

Veja este exercício de SAS Avançado que preparamos para você!

Um analista precisa gerar todos os dias a base com o saldo diário de poupança dos clientes. Porém, ele precisa manter as bases com os últimos 30 dias. A base que é gerada tem o nome de saldo_diario_poup. A base do dia anterior tem o nome: saldo_poup_d1, a base de anteontem é saldo_poup_d2 e assim por diante até a base saldo_poup_d30.

Como fazer para apagar a base mais antiga e renomear as bases com o nome da base do dia anterior?

Exemplo: a base saldo_diario_poup será renomeada para saldo_poup_d1,

a saldo_poup_d1 passará a ser a saldo_poup_d2 e assim por diante.

A última base, a saldo_poup_d30 será deletada.

Obs: todas as bases estão na biblioteca IFM

Solução:

proc datasets library=IFM nolist;

age saldo_diario_poup saldo_poup_d1 – saldo_poup_d30;

run;

 

Comentários:

A declaração AGE na PROC DATASETS renomeia o primeiro dataset da lista para o nome do segundo e assim por diante.

O hífen entre os datasets saldo_poup_d1 e saldo_poup_d30 é um facilitador para evitar digitar os 30 datasets, já que

eles começam com o mesmo nome e mudam apenas o número.

 

A solução poderia ser também da forma abaixo, mas citando todos os datasets:

proc datasets library=IFM nolist;

age saldo_diario_poup saldo_poup_d1 saldo_poup_d2 saldo_poup_d3 saldo_poup_d4 saldo_poup_d5 saldo_poup_d6

saldo_poup_d7 saldo_poup_d8 saldo_poup_d9 saldo_poup_d10 saldo_poup_d11 saldo_poup_d12 saldo_poup_d13

saldo_poup_d14 saldo_poup_d15 saldo_poup_d16 saldo_poup_d17 saldo_poup_d18 saldo_poup_d19 saldo_poup_d20

saldo_poup_d21 saldo_poup_d22 saldo_poup_d23 saldo_poup_d24 saldo_poup_d25 saldo_poup_d26 saldo_poup_d27

saldo_poup_d28 saldo_poup_d29 saldo_poup_d30;

run;