我有一个带有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,并且我希望简化/自动化此过程。
答案 0 :(得分:0)
您可以使用
选择要排除的级别to_exclude <- names(table(df$var)[table(df$var) < 6])
其中6是频率阈值。
(table()
返回指定的频率向量,因此我们需要使用基于频率值的条件子设置从中提取名称。)
然后使用NA
df$var[df$var %in% to_exclude] <- NA