R:将稀有值替换为“其他”
我有以下问题:我有一个数据帧df,它有许多变量。一个变量是df$size非数字。现在我想用“其他”一词来替换所有小于20个观测值的大小R:将稀有值替换为“其他”,r,indexing,R,Indexing,我有以下问题:我有一个数据帧df,它有许多变量。一个变量是df$size非数字。现在我想用“其他”一词来替换所有小于20个观测值的大小 sort(table(df$size)) 这为我提供了要替换的值的概述。但是如何在df中替换它们呢 df$size[sort(table(df$size))<20]="other" 这是行不通的 谢谢大家! 在这方面起作用 第123集 dfa librarydata.table答案: 与数据帧一起使用类类型表有点困难。在这里,我们使用CNT将所有内容保
sort(table(df$size))
这为我提供了要替换的值的概述。但是如何在df中替换它们呢
df$size[sort(table(df$size))<20]="other"
这是行不通的
谢谢大家! 在这方面起作用 第123集 dfa librarydata.table答案: 与数据帧一起使用类类型表有点困难。在这里,我们使用CNT将所有内容保存在单个对象类中。或使用dplyr的选项
嗨,欢迎来到stackoverflow。请共享上述命令的示例数据,以便人们可以更轻松地帮助您:
setDT(df)
cnts <- df[,.N, size]
df <- df[cnts, nomatch= 0L, on= 'size'][, size := ifelse(N < 20, 'other', size)]
library(dplyr)
df %>%
group_by(grp = size) %>%
mutate(size = replace(size, n() < 20, "other")) %>%
ungroup %>%
select(-grp)