R - 'NA'文本被视为N/A.

slo*_*o0t 2 text r na

我在R中有一个数据框,包括国家iso代码.纳米比亚的iso代码恰好是'NA'.R将此文本"NA"视为N/A.

例如,下面的代码给了我与纳米比亚的行.

test <- subset(country.info,is.na(country.info$iso.code))
Run Code Online (Sandbox Code Playgroud)

我最初认为这可能是一个因素问题,所以我确保iso代码列是字符.但这没有帮助.

怎么解决这个问题?

Tho*_*mas 5

这可能与您如何读取数据有关.仅仅因为它的性格并不意味着你"NA"不是一个NA,例如:

z <- c("NA",NA,"US")
class(z)
#[1] "character"
Run Code Online (Sandbox Code Playgroud)

您可以通过向我们提供dput()(部分)您的数据来确认这一点.

当您读入数据时,请尝试更改na.strings = "NA"(例如,更改read.csv)其他内容并查看其是否有效.

例如,用na.strings = "":

read.table(text="code country
NA  Namibia
GR  Germany
FR  France", stringsAsFactors=FALSE, header=TRUE, na.strings="")
#   code country
# 1   NA Namibia
# 2   GR Germany
# 3   FR  France
Run Code Online (Sandbox Code Playgroud)

务必检查使用""不会导致其他任何变化.否则,您可以使用一个绝对不会出现在您的文件中的字符串,如"z_z_z"或类似的东西.您可以text=..用您的文件名替换它.