Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:将稀有值替换为“其他”_R_Indexing - Fatal编程技术网

R:将稀有值替换为“其他”

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将所有内容保

我有以下问题:我有一个数据帧df,它有许多变量。一个变量是df$size非数字。现在我想用“其他”一词来替换所有小于20个观测值的大小

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)