我有一个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条目的行。
有人知道出了什么问题吗?
答案 0 :(得分:5)
回答你在评论中提出的问题:
我相信你的目的是转变na.strings
论点。它没有告诉R
如何替换NA
。相反,它会告诉R
输入文件中的哪些值应被视为 NA
。
例如,您可能遇到使用-1
来指示数据丢失的data.source。在这种情况下,您将使用na.string='-1'
如果你看?read.csv
:
na.strings
字符串的字符向量,将被解释为NA值。空字段也被视为逻辑,整数,数字和复杂字段中的缺失值。
答案 1 :(得分:2)
您错误地使用了na.strings
。要使用NA
替换空字段,请执行data[data == ""] <- NA
。
答案 2 :(得分:2)
尝试data.frame.instance <- data.frame.instance[!is.na(data.frame.instance),]
,您应该留下没有任何NA的data.frame。