我正在尝试创建一个表格,在那里我计算招聘流程不同阶段的申请人百分比。我有一个如下所示的数据框:
# 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列在百分比的末尾包含%-symbol。
答案 0 :(得分:2)
您可以按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%