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
5
A
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))