根据表函数中的条件更改列中的值

时间:2014-06-24 19:04:29

标签: r

我在R工作。我希望列的所有值都是'其他',其中该列中因子级别的观察数小于某个值k。

例如,如果我有一个数据帧:

data.frame('a' = c(rep(1,2),rep(3,20)), 'b' = c(rep('n',4), rep('b',5), rep('g', 13)) )

如果特定因子的观察数小于5,我想将列b的所有值更改为“其他”。在这种情况下,我会更改值为的所有条目n'other'

1 个答案:

答案 0 :(得分:1)

good <- names(table(dat$b))[table(dat$b)>=5]
levels(dat$b) <- c(levels(dat$b), "other")
dat$b[ !dat$b %in% good ] <- "other"

说明:找出应该保留的项目,然后扩展级别向量,使其可以接受“其他”值,然后转换不在“好”列表中的所有项目。