2012-08-04 11 views
5

La captura de pantalla adjunta muestra parte de un marco de datos que acabo de importar a R desde un archivo de Excel. En las celdas que están en blanco, necesito insertar 'NA'. ¿Cómo puedo insertar NA en cualquier celda que esté en blanco (dejando solo las células ya pobladas)?Inserte los valores de NA en el marco de datos

enter image description here

Respuesta

16

La mejor pregunta es ¿Cómo puedo leer en R por lo que las células que faltan ya estarán NA s.

Tal vez usted usa algo como esto:

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

Especificar las cadenas NA como éste cuando lo lea en:

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

para responder a su pregunta en realidad. Este enfoque podría funcionar:

#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)) 
Cuestiones relacionadas