了解R – is.na和空白的单元格

我有一个数据集。 在进行大量不同的文件操作之前,许多单元格都是“不适用”

操纵之后,无论出于何种原因,他们都变得纯粹是空的。 所以,要清楚的是,先前在excel中的NA的单元格现在只是显示完全空白。 没什么大不了的,对吧?

那么,当我读取数据到RI得到…

[1] "" "" "6.4019975396e+17" [4] "" "" "" [7] "" "" "6.40275087015e+17" [10] "6.4062774821e+17" "" "6.40602341e+17" [13] "" "" "6.40360673735e+17" [16] "6.40326194081e+17" "6.40326465381e+17" "6.40322363352e+17" 

对我来说还好吧,除了我跑步的时候

is.na(data_frame $列名)

我得到所有错误。 每一个 我误解了如何工作?

编辑 – 这是一种模糊。 当然,我误解它是如何工作的。 你能解释为什么一个空细胞不算作NA细胞吗? 是否有一个快速修复,可以应用于数据框来做任何事情“或什么将是一个空白单元格的CSV到NA为R的缘故?

你能解释为什么一个空细胞不算作NA细胞吗?

我想,总之,答案是R NA和空""是不同的。 为什么它是一个空白, NA是真正缺失的东西 – 你不知道它是什么,它可能是任何东西。

NA代替空白,事后,对于一个列你可以做

 data$column[data$column == ""] <- NA 

要为数据框中的所有列执行此操作

 data = lapply(data, function(x) {x[x == ""] <- NA}) 

正如在注释中指出的那样,解决这个问题的最佳时机是当你读取数据时,使用read.csvread.tablena.strings参数。

 read.csv(file_name, na.strings = c("", "NA"))