随附的屏幕截图显示了我刚刚从 excel 文件导入 R 的数据框的一部分。在空白的单元格中,我需要插入“NA”。如何将 NA 插入任何空白的单元格(同时保留已经填充的单元格)?
问问题
17749 次
1 回答
18
更好的问题是我怎样才能将它读入 R 以便丢失的单元格已经是NA
s。
也许你用过这样的东西:
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))
于 2012-08-04T15:43:09.427 回答