Verificar se alguma das colunas é missing no SAS

Já vimos algumas formas de lidar com variáveis missing, tanto no post Tutorial: Proc Sql (SAS), quando no Formas de deletar linhas com Missing no SAS. Mas essas são formas de olhar para uma variável e excluir a linha. E se quisermos olhar para todas as variáveis?

Há algumas formas. Como de costume, primeiro vamos montar uma tabela para usar como exemplo:

DATA EXEMPLO;
   INPUT ID $ UF $ VLR_COMPRA;
   CARDS;
AA123 SP 1000
BB001 MG 1500
AA010 BA 1650
AA003 BA 1900
. SP 1520
. PE 1575
. . 1000
AA111 PE .
;
RUN;

Captura de Tela 2018-07-28 às 15.52.12

Começamos vendo alguns novos exemplos de como excluir a linha caso determinada variável numérica seja missing:

DATA EXEMPLO_EXCLUI_MISSING;
    SET EXEMPLO;
    IF NMISS( OF VLR_COMPRA ) THEN DELETE ;
RUN;

Captura de Tela 2018-07-28 às 15.53.59

E também um exemplo de como trazer somente as linhas em que determinada variável numérica seja missing:

DATA EXEMPLO_TRAZ_MISSING;
    SET EXEMPLO;
    IF NMISS( OF VLR_COMPRA ) ;
RUN;

Captura de Tela 2018-07-28 às 15.55.22

Análogo ao NMISS, temos o CMISS para variáveis do tipo texto:

DATA EXEMPLO_EXCLUI_MISSING;
    SET EXEMPLO;
    IF CMISS( OF ID ) THEN DELETE ;
RUN;

Captura de Tela 2018-07-28 às 15.56.42

DATA EXEMPLO_TRAZ_MISSING;
    SET EXEMPLO;
    IF CMISS( OF ID ) ;
RUN;

Captura de Tela 2018-07-28 às 15.57.09

Agora, para validar todos os campos tipo texto que você tem, utilize o argumento _character_ e contabilize os missing:

DATA EXCLUI_TODAS_VARIAVEIS_TEXTO;
    SET EXEMPLO;
    IF CMISS(OF _CHARACTER_) > 0 THEN DELETE;
RUN ;

Captura de Tela 2018-07-28 às 15.59.39

Analogamente, pode-se usar _numeric_. para variáveis numéricas.

Se você quiser validar se todos os campos estão preenchidos e deletar as linhas que tiverem alguma variável missing, utilize os dois juntos:

DATA EXCLUI_TODAS_MISSING;
    SET EXEMPLO;
    IF NMISS(OF _NUMERIC_) OR CMISS(OF _CHARACTER_) THEN DELETE;
RUN ;

Captura de Tela 2018-07-28 às 16.03.16

Cabe a ressalva de que para fazer um modelo, o ideal não é deletar campos missing. Perde-se muita informação, além de poder enviesar o modelo. Mas isso será assunto para outro post.

Bons estudos!

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s