15 Questões de SAS com Data Step

Tente resolver essas questões sem utilizar o software, depois veja quantas acertou!

01) Quais os valores de x e y?

data exercício_um;
    x = 2ˆ2;
    y = 3**3;
run;

02)  Preencha o campo Coluna_3 da tabela Tabela_A:

data Tabela_A;
    set Tabela_B;
    Coluna_3 = Coluna_2/Coluna_1;
run;

03) Preencha o campo Coluna_2 da tabela Tabela_D abaixo:

data Tabela_D;
    set Tabela_C;
    Coluna_2 = substrn(Coluna_1, 1, 3);
run;

04) Há alguma diferença na saída dos dois códigos abaixo?

data Tabela_D;
    set Tabela_C;
    Coluna_2 = substrn(Coluna_1, 1, 3);
run;
data Tabela_D;
    set Tabela_C;
    Coluna_2 = substr(Coluna_1, 1, 3);
run;

05) Todas as alternativas abaixo podem ser utilizadas para renomear o campo Coluna_1?

data Tabela_D;
    set Tabela_C;
    rename Coluna_1 = Coluna_2;
run;
data Tabela_D (rename =Coluna_1 = Coluna_2);
    set Tabela_C;
run;
data Tabela_D;
    set Tabela_C;
    rename Coluna_1 Coluna_2;
run;
data Tabela_D (rename Coluna_1 = Coluna_2);
    set Tabela_C;
run;

06) Quais os problemas no código abaixo?

data tabela;
    coluna_nova = '03ABR2018'-'01ABR2018';
run;

07) Há alguma diferença entre os dois códigos abaixo?

data tabela_new;
    set tabela_old;
    coluna_nova = compress(" 01 FEV 2018 ");
run;
data tabela_new;
    set tabela_old;
    coluna_nova = strip(" 01 FEV 2018 ");
run;

08) Quantas linhas do campo coluna_nova na tabela Tabela_B são iguais a 0?

data tabela_A;    
    input coluna_1;    
    cards;
6.8
7.4
6.4
8.2
;
run;

data tabela_B; 
    set tabela_A; 
    if int(coluna_1 / 2) > 3 then coluna_nova = 1; 
    else coluna_nova = 0;
run;

09) Utilizando a tabela_A do exercício anterior, quantas linhas do campo coluna_nova na tabela_C são iguais a 0?

data tabela_C; 
    set tabela_A; 
    if round(coluna_1) > 6 then coluna_nova = 1; 
    else coluna_nova = 0;
run;

10) Quais os valores da coluna_3 da tabela_nova definida pelo data step abaixo?

data null;    
    coluna_nova = yrdif('03APR2018'd,'03APR2017'd); 
    coluna_nova_2 = datdif('03APR2017'd,'03APR2018'd, 'act/act');
run;

11) O script abaixo, utilizado para gerar as tabelas tabela_B e tabela_C, funciona por completo? Se sim, qual a saída? Se não, o que precisaria ser ajustado?

data tabela_A;    
    input coluna_1;    
    cards;
9
16
5
4
;
run;

data tabela_B; 
    set tabela_A; 
    if coluna_1 > 7 then coluna_2 = sqrt(coluna_1); 
    else coluna_2 = 0; 

    coluna_3 = coluna_2;
 
    rename coluna_1 = coluna_nova; 
run;

data tabela_C; 
    set tabela_A;
    rename coluna_1 = coluna_nova; 

    if coluna_1 > 7 then coluna_2 = sqrt(coluna_1); 
    else coluna_2 = 0; 
   
    coluna_3 = coluna_2; 
run;

13) Qual valor retornará a coluna campo_novo?

data null;
    numero = 123429394; 
    campo_novo = put(numero, z11.);
run;

14) Quantas colunas possui a tabela tabela_C? Quais os valores da sua última coluna?

data tabela_A;
    input coluna_1 $ coluna_2;
    cards;
ABC 10
DEF 5
GHI 12
;
run;

data tabela_B;
    input coluna_1 $ coluna_3;
 cards;
ABC 200
DEF 300
;
run;

data tabela_C;
    merge tabela_A tabela_B;
    by coluna_1;
    coluna_4 = coluna_3 *2;
run;

15) Por que os códigos abaixo não geraram a tabela_C?

a)

data tabela_A;
    input nome $;
    cards;
Andre
Daniela
Igor
Patricia
;
run;

data tabela_B;
    input nome nota;
    cards;
Igor 7
Patricia 8
;
run;

data tabela_C;
    merge tabela_A tabela_B;
    by nome;
run;

b)

data tabela_A;
    input id $;
    cards;
APEOEIQK
BDJQOPEX
BCAPEORP
XRALPOED
XAWPELOR
;
run;

data tabela_B;
    input id $ cep $;
    cards;
APEOEIQK 03949503
BDJQOPEX 20495839
BCAPEORP 22222222
XRALPOED 33333333
XAWPELOR 00000009
;
run;

data tabela_C;
    merge tabela_A tabela_B;
    by id;
run;

Em breve eu posto as respostas (vocês também conseguem verificar no próprio SAS)!

Se este post te ajudou de alguma forma, curte o link ou deixe um comentário. E se tiver outros amigos que trabalham com esse material, não deixe de compartilhar com eles o site.  Obrigado.

Deixe um comentário

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