【问题标题】:Subset dataframe after addNA of an factor一个因子的 addNA 之后的子集数据帧
【发布时间】:2026-01-15 06:35:01
【问题描述】:

我有一个带有连续变量 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 添加为因子级别,因为它在我的情况下非常方便(请参阅here 了解它有用的一种情况)。

【问题讨论】:

  • 你想要的结果是什么?你能举个例子吗?
  • @FrancescoGrossetti 您好,正如问题“我的预期输出包含 df$group 具有因子级别 NA 的所有行,即 data.frame(x= 1:4, group= addNA(factor( c(NA, 1, 1, 2))))[1, ]"

标签: r subset na


【解决方案1】:

你可以试试这个方法:

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

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

【讨论】:

最近更新 更多