如何将因子折叠成 "other"(不基于大小)

How to collapse factors into "other" (not based on size)

我正在处理 NHL 球员数据,我基本上想比较 select 球员与其他人的得分。所以我有这样的播放器数据:

 Player Season Team  Position    GP   TOI     G     A     P    P1 `P/60`
 <chr>   <int> <chr> <chr>    <int> <dbl> <dbl> <dbl> <dbl> <dbl>  <dbl>
 Aaron~   2019 FLA   D           35 603.      3     2     5     3   0.5 
 Adam ~   2019 CBJ   D            4  35.5     0     0     0     0   0  
Adam ~   2019 T.B   L           23 218.      2     7     9     5   2.48

联盟其他球队依此类推。我想将其中一个观察结果与其余数据集之间的汇总统计数据进行比较。

 Player Season Team  Position    Summary Statistic
 <chr>   <int> <chr> <chr>             <int>
 Kasperi   2019 FLA   D                  45 
 "Others"  2019 CBJ   D                  53 

我已经看到 fct_lump 曾经 select 排名靠前的记录,按某些计数排序 - 但是当我尝试类似于使用玩家名称的方法时,我无法让它工作。

NHL %>% 
 mutate(Player = fct_lump(Player,
                              Kasperi Kapanen = "Kasperi Kapanen",
                              other = !("Kasperi Kapanen")))

fct_lump 不适合处理您想要的灵活性。你应该使用 dplyr's if_else 作为一个反对所有其他观察

library(dplyr)
NHL %>% 
    mutate(Player = if_else(Player == "Kasperi Kapanen", "Kasperi Kapanen",
                                                         "others"))

OR case_when 用于多个 ifelse 比较。

NHL %>% 
    mutate(Player = case_when(
                       Player == "Kasperi Kapanen" ~ "Kasperi Kapanen", 
                       Player == "Adam" ~ "Adam",
                       TRUE ~ "others" 
                             ))