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;