R studio 在分类变量上创建“额外”因素

问题描述

我对 R 还是很陌生,所以请在这里耐心等待。当我将数据集加载到 R studio 时,它会在一个值为“高”、“中”和“低”的分类变量上创建一个具有 4 个级别的因子。这不应该只是一个具有 3 个级别的因子吗? 因此,当我数据集中的变量(向量)budget.level 具有以下值时:

Budget.level <- c("High","Medium","low")

levels(Budget.level)

我得到的输出是这样的

enter image description here

enter image description here

为什么我会得到这个额外的空关卡? 如果您需要更多信息,请告诉我。

解决方法

您需要确保空字符串变成 NA。这完全取决于您使用哪种函数或方法来加载数据。

例如,

read.table 使用 na.strings = "NA"。您可以将其更改为使用 ""

read_xlsx 使用 na = "",它可以作为您的默认值。

您也可以事后手动清理:

mvc_new$Budget.level[ mvc_new$Budget.level %in% "" ] <- NA
mvc_new$Budget.level <- factor( mvc_new$Budget.level )