r - 导入 read.csv/read.xlsx 时将 NA 值插入数据框空白单元格

标签 r excel na read.csv

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

enter image description here

最佳答案

更好的问题是如何将其读入 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))

关于r - 导入 read.csv/read.xlsx 时将 NA 值插入数据框空白单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11809854/

相关文章:

r - 仅当 "sandwiched"使用 dplyr 填充相同的值时才填充 NA

在 R 中重命名 for 循环中的对象

r - 如何通过附加不同长度的字符串来消除重复字符串的歧义?

excel - 将逗号分隔的值拆分为数组并查找与预设条件的匹配项

在 groupby r 之后删除所有 NA 值的行

r - 如何删除包含超过 2000 个 NA 值的所有列?

r - 创建一个新的数据框列,该列是其他列的组合

r - R : can only copy from 'windows' devices 中的 savePlot() 错误消息

excel - 我无法访问 'Columns(2)' 的每个单元格,与 '' Range ("B:B")' What kind of range is ' Columns(2)' 不同?

ruby-on-rails - 使用电子表格 gem 的自定义颜色