根据列中 factor/categorical 值的频率删除行

Removing rows based upon frequency of factor/categorical value in a column

我有一个数据集,我将对其进行交叉验证训练。但是,由于数据的这种拆分,我有时会遇到错误,因为在测试集中找到的因子水平在训练集中没有找到----因为这个因子可能出现的次数非常有限。

我想要一种在进行任何交叉验证之前轻松过滤掉这些行以避免错误的方法...

例如,我将如何检查以确保删除包含 9 个或更少观察值的因子?

mtcars$carb = factor(mtcars$carb)
table(mtcars$carb)

使用库 dplyr,您可以尝试这样的操作:

library(dplyr)
mtcars %>% group_by(carb) %>% filter(n() > 9)

或者,您可以重构训练集中的变量,并从测试集中删除不在训练数据中的任何级别。