创建一个因素以将 NA 作为一个级别

Creating a factor to include NA as a level

大家好,我正在处理一个非常大的数据集,我已经将其转换为一个因子,我的问题是我需要将 NA 计为 N 并成为数据集的一部分。我成功地将数据更改为因子,但我一生都无法让 NA 数据显示在 N 下,这就是我所拥有的

我们需要将 pell.elig 转换为一个因子,以便我们可以适当地利用数据

factor(Student_Data$Pell.Elig, exclude = NULL, 
       levels = c("Y", NA), 
       labels = c("Y", "N"))
levels(Student_Data$Pell.Elig)

然后我们将 运行 一个 table 第一代和 pell 有资格查看结果。

table(as.factor(Student_Data$firstgen),Student_Data$Pell.Elig)
      Y   N
  FG 403   0
  OP 133   0
  TP  85   0

我的 table 显示 N 为 0,但我需要它们指示 NA。

我们可以将 NA 元素更改为“N”

levels(Student_Data$Pell.Elig) <- c("Y", "N")
Student_Data$Pell.Elig[is.na(Student_Data$Pell.Elig)] <- "N"

或者另一种选择是fct_explicit_na

library(forcats)
table(as.factor(Student_Data$firstgen),
      fct_explicit_na(Student_Data$Pell.Elig, na_level = "N"))