Как рассчитать и отобразить проценты из двоичного фрейма данных

Я пытаюсь создать таблицу, в которой подсчитываю процент соискателей на разных этапах процесса найма. У меня есть фрейм данных, который выглядит так:

# A tibble: 6 x 3
  CandidateType     Step   Amount
        <fctr>      <chr>   <dbl>
1     External   Hiring       304
2     Internal   Hiring       164
3     External   Interview    950
4     Internal   Interview    512
5     External   Application 8726
6     Internal   Application  828

Мне нужно добавить столбец, в котором подсчитывается процентное соотношение заявлений, завершившихся собеседованием, и процентное соотношение заявлений, которые заканчиваются приемом на работу для каждой группы (внутренние и внешние заявители). Это должно выглядеть примерно так:

# A tibble: 6 x 3
  CandidateType     Step   Amount     Pct
        <fctr>      <chr>   <dbl>    <chr>
1     External   Hiring       304   3.48 %
2     Internal   Hiring       164  19.81 %
3     External   Interview    950  10.89 %
4     Internal   Interview    512  61.84 %
5     External   Application 8726 100.00 %
6     Internal   Application  828 100.00 %

Я попытался решить проблему с помощью следующего кода, но безуспешно:

recruitmentDFinternal <- recruitmentDF %>% 
  filter(CandidateType == "Internal") %>% 
  percent((Amount) / Amount[3])

Идея заключалась в том, чтобы использовать функцию percent из пакета scales и создать два отдельных фрейма данных из каждого типа кандидатов, чтобы в конечном итоге сделать bind_rows, чтобы собрать их вместе, но мне не удалось заставить функцию percent работать. Есть ли у кого-нибудь решение этой проблемы? Мне нужно, чтобы столбец Pct содержал символ% в конце процента.

1
0
267
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете сгруппировать свои tibble по CandidateType и разделить Amount каждой строки на максимальное значение Amount:

recruitmentDF %>% 
  group_by(CandidateType) %>% 
  mutate(Pct = scales::percent(Amount / max(Amount)))

Это возвращает:

# A tibble: 6 x 4
# Groups:   CandidateType [2]
  CandidateType Step        Amount Pct   
  <fct>         <fct>        <int> <chr> 
1 External      Hiring         304 3.5%  
2 Internal      Hiring         164 19.8% 
3 External      Interview      950 10.9% 
4 Internal      Interview      512 61.8% 
5 External      Application   8726 100.0%
6 Internal      Application    828 100.0%

Очень круто! Большое спасибо! - Я бы поддержал, но репутации у меня пока недостаточно, извините :-(

Nordsted 11.04.2018 14:20

Другие вопросы по теме