根据计数将因子级别转换为NA

时间:2018-06-06 17:19:57

标签: r

我有一个带有82级变量的df。其中一些级别仅用于1-5次观察,我想将它们设置为NA。

>table(df$var)
   1    2    3    4
   2    4  152  264

我通常这样做的方式是

df$var[df$var=="1" | df$var=="2"] <-NA

但是我需要将很多级别设置为NA,并且我希望简化/自动化此过程。

1 个答案:

答案 0 :(得分:0)

您可以使用

选择要排除的级别
to_exclude <- names(table(df$var)[table(df$var) < 6])

其中6是频率阈值。 (table()返回指定的频率向量,因此我们需要使用基于频率值的条件子设置从中提取名称。) 然后使用NA

删除所有这些值
df$var[df$var %in% to_exclude] <- NA