1
resposta

Criar duas variáveis em um único código

Eu vi o seguinte exemplo de código em outro tópico:

data teste;
set alura.cadastro_produto;
if data > 201606
    then lancamento = 1; 
    else lancamento = 0;
run;

data teste;
set teste;
if data < 201401
    then antigo = 1;
    else antigo = 0;
run;

Mas entendo que ai criamos dois códigos, e eu queria em um único código resolver o problema, com dois "IF's" talvez, como poderi fazer isso?

Exemplo:

data teste;
set alura.cadastro_produto;
if data > 201606
    then lancamento = 1; 
    else lancamento = 0;

AND

if data < 201401
    then antigo = 1;
    else antigo = 0;

run;

Faz sentido? é possível fazer algo nesse gênero?

1 resposta

Olá Vilmara, tudo bem com você?

Excelente pergunta! Faz sentido sim e pode ser necessário em vários casos.

Quando queremos fazer várias instruções dentro de um bloco, por exemplo o bloco if, podemos fazer o uso de um marcador chamado de grupo Do.

A instrução DO faz com que todas as instruções seguintes sejam tratadas como uma unidade até que uma instrução END correspondente apareça, por exemplo:

do;
lancamento=0;
antigo=1;
end;

Todo o bloco acima será tratado como único.

Agora que sabemos do grupo DO, podemos juntar as lógicas de verificação de lançamento e antigo da seguinte maneira:

data teste;
set alura.cadastro_produto;
if data > 201606
    then 
        do;
        lancamento=1;
        antigo=0;
        end;
    else 
        do;
        lancamento=0;
        if data < 201401
            then antigo=1;
        else antigo=0;
        end;

run;

Espero ter ajudado, mas qualquer problema é só mandar mensagem aqui, combinado?

Abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!