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

Posted

技术标签:

【中文标题】一个因子的 addNA 之后的子集数据帧【英文标题】:Subset dataframe after addNA of an factor 【发布时间】:2022-01-17 17:12:19 【问题描述】:

我有一个带有连续变量 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, ]" 【参考方案1】:

你可以试试这个方法:

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

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

【讨论】:

另外,这可能是您感兴趣的:***.com/questions/17302053/…

以上是关于一个因子的 addNA 之后的子集数据帧的主要内容,如果未能解决你的问题,请参考以下文章

如何用因子和向量构建函数

R按因子子集后的空数据框

如何从因子子集中获取统计数据?

R randomForest子集无法摆脱因子水平[重复]

结合R中数据帧的因子水平

R中的鬼因子水平[重复]