Neste post, vamos ver algumas formas de se deletar uma linha no SAS, caso tenhamos campos missing. Para os exemplos abaixo, utilizar os seguintes dados:
data exemplo; input id $ valor; cards; AB555 350 AB444 444 AA123 475 AB667 . . 444 . . ; run;
Note que temos algumas situações aí: uma linha com apenas a primeira coluna missing; uma linha com apenas a segunda coluna missing; uma linha com todos os campos missing. Além disso, temos que o primeiro caso é uma string e o segundo um número. Vamos ver como tratá-los:
- Deletar a linha inteira, se algum campo qualquer (definido pelo usuário) estiver missing:
/*deleta a linha qdo o campo id for missing*/ data exemplo_deleta; set exemplo; if id eq "" then delete; run; /*deleta a linha qdo o campo valor for missing*/ data exemplo_deleta; set exemplo; if valor eq . then delete; run;
- Deletar a linha linha inteira ,se todos os campos estiverem missing:
options missing = ' ' ; data deleta_linha_missing; set exemplo; if missing(cats(of _all_)) then delete; run;
O options nesse caso é utilizado para apresentar os valores missing como se fosse um espaço vazio. Como a função CATS irá concatenar todos os valores, retirando os espaços em branco, será como se a função missing estivesse olhando para um único campo vazio. Por esse motivo, excluirá a linha inteira quando todos os campos estiverem vazios.
Espero ter ajudado. Infelizmente não estou conseguindo usar o ‘print’ do SAS University no Safari, então por enquanto o post ficará sem as figuras das tabelas. Mas creio que deu para entender bem.
Se você gostou desse conteúdo, deixe um comentário, uma curtida e/ou compartilhe o blog com seus colegas. Vocês não tem ideia de como qualquer ajudinha dessas, faz a diferença. Abraços e bons estudos!
Parabéns pelo site!