R - 使用complete.cases删除字符数据中的NA

时间:2014-10-15 11:02:25

标签: r dataframe character rstudio na

我想使用

删除数据框“添加”的任何列中包含NA值的行
a <- addition[complete.cases(addition), ]

a <- addition[!is.na(addition)]

a <- na.omit(addition)

但是NAs仍然存在。我还尝试将complete.cases限制为包含一些NA的唯一列。 我发现它们根本没有被识别出来:

   which(is.na(addition))
    integer(0)

数据框“添加”看起来像这样(NA是第1211行的第4列):

row.names lemma pos derlemma derpos handannotated
11 akvizice N perform_akvizice V 1
1211 diagnóza N NA V 1
1221 dialýza N dialyzovat V 1
1241 díkuvzdání N perform_díkuvzdání V 1

我只能使用此功能删除NAs:

a <- addition[which(addition$derlemma != "NA"), ]

我是否以错误的方式使用了complete.cases函数或带注释的“NA”,或者我是否可能搞砸了R Studio用户选项中的某些内容?

非常感谢任何支持。

使用RStudio版本0.98.1028,Win 7 Professional 64x。


后来: 感谢下面的答案,我意识到字符变量中的“NA”不会被解释为“不可用”,而只是一个字符串。

我在R中创建了整个数据集,随后将“NA”字符串(不带引号)添加到RStudio中数据编辑器的某些单元格中。因此,我没有指定R,“NA”表示NA。

当我将数据框保存为.csv并使用read.table()再次加载时,我能够指定na.strings =“NA”和complete.cases()工作。非常感谢所有顾问!

0 个答案:

没有答案