2012-08-04 72 views
5

附加的屏幕截图显示了我刚从excel文件导入到R中的数据帧的一部分。在空白的单元格中,我需要插入'NA'。我如何将NA插入任何空白的单元格(同时保留已填充的单元格)?将NA值插入到数据框中

enter image description here

回答

16

更好的问题是我怎么能读式的R因此丢失的细胞将已经NA秒。

也许你使用的是这样的:

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

指定NA字符串这样当你在阅读它:

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

真正回答你的问题。此方法可行:

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