2017-08-24 4 views
0

Erste Post auf SO überhaupt, also freue ich mich auf ein Feedback von einigen Veteranen in R im Forum zu bekommen. :)Read.csv zählt nicht NA in meinem Datensatz

Ich habe einen CSV file (2.52KB), dass ich zur Zeit nicht in der Lage bin NAs zu identifizieren, wenn ich die folgende NA Identifizierung Skript (insbesondere in ORG Spalte) laufen:

mydata = read.csv("DF_Cleanup_isNAError_Test.csv" header = TRUE, sep = ",", quote = "", dec = ".", fill = TRUE) 
nan_count <-sapply(mydata, function(y) sum(length(which(is.na(y))))) 
nan_count <- data.frame(nan_count) 
nan_count 

Wenn ich die Datensätze mit NA-Werte isolieren in Eine ORG-Spalte (nur 30 Gesamtzeilen) in control data set, die das gleiche NA-Identifizierungsskript ausführt, gibt jedoch eine Zählung von 30 für die Spalten-ORG zurück. Dies wird auch für das obige Skript erwartet, aber das passiert nicht.

mydata = read.csv("DF_Cleanup_isNAError_Control.csv" header = TRUE, sep = ",", quote = "", dec = ".", fill = TRUE) 
nan_count <-sapply(mydata, function(y) sum(length(which(is.na(y))))) 
nan_count <- data.frame(nan_count) 
nan_count 

Ich bin völlig im Augenblick auf, warum es stapfte wäre ein Unterschied mit dem Zusatz von anderen Datensätzen in dem Datensatz, wenn nichts über die einzelnen Datensätze in Frage geändert hat. Der Testdatensatz ist immer noch nur eine Teilmenge der Gesamtbevölkerungsdaten; Ich habe ungefähr 850K Gesamtreihen, aber ich dachte, das ist ein guter Anfang, um zu isolieren, was das Problem ist.

Hier ist meine aktuelle Sitzung Info

R version 3.4.1 (2017-06-30) 
    Platform: x86_64-w64-mingw32/x64 (64-bit) 
    Running under: Windows 7 x64 (build 7601) Service Pack 1 

    Matrix products: default 

    locale: 
    [1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United 
    States.1252 LC_MONETARY=English_United States.1252 
    [4] LC_NUMERIC=C       LC_TIME=English_United States.1252  

    attached base packages: 
    [1] stats  graphics grDevices utils  datasets methods base  

    other attached packages: 
    [1] dplyr_0.7.2 

    loaded via a namespace (and not attached): 
    [1] compiler_3.4.1 magrittr_1.5  assertthat_0.2.0 R6_2.2.2   
    tools_3.4.1  bindrcpp_0.2  glue_1.1.1  tibble_1.3.3  
    [9] Rcpp_0.12.12  pkgconfig_2.0.1 rlang_0.1.1  bindr_0.1 
+1

Es könnte sein, dass es als "NA" gelesen wird. Könnten Sie 'which (y ==" NA ")' (im Zusammenhang mit Ihrem Code) versuchen, dies zu testen? – CPak

+2

Versuchen Sie 'na.strings =" "' zu Ihrem 'read.csv' Aufruf hinzuzufügen. – jav

+1

Side-Problem: Ihre 'sapply' kann durch' colSums ersetzt werden (is.na (myData) ' –

Antwort

0

@jav beantwortet dies im Abschnitt Kommentare aber ich dachte, das ist eigentlich als Antwort aufgeführt werden sollte. Wenn er seinen Kommentar als Antwort zurückgibt, lösche ich dies.

Das Hinzufügen von na.strings = "" zu read.csv("filename.csv") löst das Problem.

Verwandte Themen