2

我有一个 csv 文件,其中(在一列中)缺少一些值,我想省略 data.file 中的相应行。

我以为通过写作

data <- read.csv(file="name.csv",head=TRUE,sep=";", na.strings = "NA")

na.strings = "NA" 选项用 NA 替换缺失值,然后我可以使用

cleanData <- na.omit(data) or cleanData <- data[complete.cases(data), ]

过滤掉缺失的部分。

但即使在应用了第一部分之后,即包括 na.strings = "NA" 选项,生成的数据帧仍然包含具有空条目而不具有 NA 条目的行。

有人知道出了什么问题吗?

4

3 回答 3

5

回答您在评论中提出的问题:

我相信你已经把na.strings争论的目的转过来了。它没有说明R如何替换NAs。相反,它告诉R输入文件中的哪些值应该被视为 NAs。


例如,您可能会遇到-1用于指示数据丢失的 data.source。在这种情况下,您将使用na.string='-1'

如果你看?read.csv

na.strings

要解释为 NA 值的字符串的字符向量。空白字段也被认为是逻辑、整数、数字和复杂字段中的缺失值。

于 2013-04-22T03:53:50.630 回答
2

尝试一下data.frame.instance <- data.frame.instance[!is.na(data.frame.instance),],您应该得到一个没有任何 NA 的 data.fame。

于 2013-04-22T04:04:43.430 回答
2

你用na.strings错了。要将空字段替换为NA,请执行data[data == ""] <- NA

于 2013-04-22T04:01:30.393 回答