Temos um quadro de dados de um arquivo CSV. O quadro de dados DF
possui colunas que contêm valores observados e uma coluna ( VaR2
) que contém a data em que uma medição foi realizada. Se a data não foi registrada, o arquivo CSV contém o valor NA
, para dados ausentes.
Var1 Var2
10 2010/01/01
20 NA
30 2010/03/01
Gostaríamos de usar o comando subset para definir um novo quadro de dados de new_DF
forma que contenha apenas linhas que tenham um NA'
valor da coluna ( VaR2
). No exemplo dado, apenas a linha 2 estará contida na nova DF
.
O comando
new_DF<-subset(DF,DF$Var2=="NA")
não funcionar, o quadro de dados resultante não tem entradas de linha.
Se no arquivo CSV original Valor NA
são trocados com NULL
o mesmo comando produz o resultado desejado: new_DF<-subset(DF,DF$Var2=="NULL")
.
Como posso fazer esse método funcionar, se para a sequência de caracteres o valor NA
é fornecido no arquivo CSV original?
new_DF <- DF[is.na(DF$Var),]
, ou seja, parece haver um(
colchete extra depoisDF[
?NA é um valor especial em R, não misture o valor NA com a string "NA". Dependendo da forma como os dados foram importados, suas células "NA" e "NULL" podem ser de vários tipos (o comportamento padrão é converter strings "NA" em valores NA e deixar as strings "NULL" como estão).
Se estiver usando read.table () ou read.csv (), você deve considerar o argumento "na.strings" para fazer a importação de dados limpa e sempre trabalhar com valores R NA reais.
Um exemplo, trabalhando em ambos os casos células "NULL" e "NA":
fonte
complete.cases
dáTRUE
quando todos os valores em uma linha não sãoNA
fonte
Isso deve criar um novo quadro de dados (
new_data
) com apenas os valores ausentes nele.Funciona melhor para manter um controle dos valores que você pode descartar mais tarde, porque eles tinham algumas colunas com observações ausentes (NA).
fonte
Tente mudar isso:
fonte
DF %>% filter(is.na(Var2))
depoislibrary(dplyr)
.Imprime todas as linhas com dados NA:
fonte