如何从模型矩阵中删除未使用的级别

时间:2018-07-02 15:05:03

标签: r model.matrix

我创建了一个模型矩阵。一些变量是类别变量。 过滤数据后,数据集中不再包含某些级别。 如何删除未使用的级别? 我可以将因子函数应用于分类变量吗?

1 个答案:

答案 0 :(得分:3)

您可以在 base R 中使用droplevels函数。假设 x 为因子/类别变量:

x <- as.factor(c("cat", "dog","cat", "gator"))
x
# [1] cat   dog   cat   gator
# Levels: cat dog gator

# somewhere in analysis you removed the only entry for a level
x <- x[x!= "gator"]     
x
# [1] cat dog cat
# Levels: cat dog gator

droplevels(x)
# [1] cat dog cat
# Levels: cat dog

有关更多详细信息,请参见droplevels R documentation