Mamy ramkę danych z pliku CSV. Ramka danych DF
zawiera kolumny zawierające zaobserwowane wartości i kolumnę ( VaR2
) zawierającą datę wykonania pomiaru. Jeśli data nie została zarejestrowana, plik CSV zawiera wartość NA
dla brakujących danych.
Var1 Var2
10 2010/01/01
20 NA
30 2010/03/01
Chcielibyśmy użyć polecenia podzestaw, aby zdefiniować nową ramkę danych, new_DF
tak aby zawierała tylko wiersze, które mają NA'
wartość z kolumny ( VaR2
). W podanym przykładzie tylko wiersz 2 będzie zawarty w nowym DF
.
Komenda
new_DF<-subset(DF,DF$Var2=="NA")
nie działa, wynikowa ramka danych nie zawiera wpisów wierszy.
Jeśli w oryginalnym pliku CSV Value NA
są wymieniane NULL
, to samo polecenie wywołuje pożądany efekt: new_DF<-subset(DF,DF$Var2=="NULL")
.
Jak mogę sprawić, by ta metoda działała, jeśli dla ciągu znaków wartość NA
jest podana w oryginalnym pliku CSV?
new_DF <- DF[is.na(DF$Var),]
, tj. wydaje się, że po nim jest dodatkowy(
nawiasDF[
?NA to specjalna wartość w R, nie należy mylić wartości NA z ciągiem „NA”. W zależności od sposobu importowania danych, komórki „NA” i „NULL” mogą być różnego typu (domyślnym zachowaniem jest konwersja ciągów „NA” na wartości NA i pozostawienie ciągów „NULL” bez zmian).
Jeśli używasz read.table () lub read.csv (), powinieneś rozważyć argument "na.strings", aby dokonać czystego importu danych i zawsze pracować z prawdziwymi wartościami R NA.
Przykład działający w obu przypadkach komórki „NULL” i „NA”:
DF <- read.csv("file.csv", na.strings=c("NA", "NULL")) new_DF <- subset(DF, is.na(DF$Var2))
źródło
complete.cases
podaje,TRUE
kiedy wszystkie wartości w wierszu nie sąNA
źródło
Powinno to spowodować utworzenie nowej ramki danych (
new_data
) zawierającej tylko brakujące wartości.Najlepiej jest śledzić wartości, które możesz później upuścić, ponieważ zawierały one kolumny z brakującymi obserwacjami (NA).
źródło
Spróbuj to zmienić:
źródło
DF %>% filter(is.na(Var2))
polibrary(dplyr)
.Drukuje wszystkie wiersze z danymi NA:
tmp <- data.frame(c(1,2,3),c(4,NA,5)); tmp[round(which(is.na(tmp))/ncol(tmp)),]
źródło