一个因子的 addNA 之后的子集数据帧

Subset dataframe after addNA of an factor

我有一个带有连续变量 x 和分组因子的数据框。出于某种原因,我需要添加 NA 作为因子水平。结果,数据为:

df <- data.frame(x= 1:4, group= factor(c(NA, 1, 1, 2)))
df$group <- addNA(df$group)

现在如何为 NA 值对“组”变量中的数据进行子集化?我尝试过:

df[df$group == "NA", ]
df[df$group == "<NA>", ]
df[is.na(df$group), ]
df[df$group == levels(df$group)[3], ]

我的预期输出包含 df$group 具有因子水平 NA 的所有行,即 data.frame(x= 1:4, group= factor(c(NA, 1, 1, 2)))[1, ]

我确实需要添加 NA 作为因子级别,因为它在我的情况下非常方便(请参阅 了解它有用的一种情况)。

你可以试试这个方法:

df[is.na(as.character(df$group)),]
  x group
  1  <NA>

在查找 na 值之前将变量移动到字符