2012-08-04 10 views
5

Der beigefügte Screenshot zeigt einen Teil eines Datenframes, den ich gerade aus einer Excel-Datei in R importiert habe. In den Zellen, die leer sind, muss ich "NA" einfügen. Wie kann ich NA in eine Zelle einfügen, die leer ist (während die bereits besetzten Zellen in Ruhe gelassen werden)?NA-Werte in Datenframe einfügen

enter image description here

Antwort

16

Die bessere Frage ist, wie kann ich es in R lesen, so dass die fehlenden Zellen bereits NA s sein.

Vielleicht hat man so etwas wie dieses:

read.csv(file, header=FALSE, strip.white = TRUE, sep=",") 

die NA Strings wie diese angeben, wenn Sie es in lesen:

read.csv(file, header=FALSE, strip.white = TRUE, sep=",", 
    na.strings= c("999", "NA", " ", "")) 

, um tatsächlich die Antwort auf Ihre Frage. Dieser Ansatz könnte funktionieren:

#making fake data on a Saturday morning 
dat <- data.frame(matrix(sample(c("", LETTERS[1:4]), 200, 
    replace=T, c(.6, rep(.1, 4))), 20)) 

#function to replace blanks with missing 
blank2na <- function(x){ 
    z <- gsub("\\s+", "", x) #make sure it's "" and not " " etc 
    x[z==""] <- NA 
    return(x) 
} 

#apply that function 
data.frame(sapply(dat, blank2na))