2012-08-04 69 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))