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.
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!