Как свести факторы в «другие» (не в зависимости от размера) - PullRequest
0 голосов
/ 27 декабря 2018

Я работаю с данными игроков НХЛ и в основном хочу сравнить выбранные очки игроков с остальным населением.Итак, у меня есть данные игрока, которые выглядят так:

 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, используемый для выбора верхних записей, отсортированных по некоторому количеству - но когдаЯ попробовал что-то похожее на использование имен проигрывателей, но не смог заставить его работать.

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

1 Ответ

0 голосов
/ 28 декабря 2018

fct_lump не подходит для гибкости, которую вы хотите.Вы должны использовать dplyr if_else для одного против всех других наблюдений

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

ИЛИ case_when для множественных ifelse сравнений.

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