如何从二进制数据框计算并展示招聘流程各阶段申请者百分比
计算招聘流程阶段转化率的解决方案
嘿,我来帮你搞定这个招聘转化率的计算!你的数据是长格式的,咱们先把它转成更易计算的宽格式,再添加所需的转化率列,一步一步来:
1. 重现你的原始数据
首先先把你提供的tibble数据还原出来,方便后续操作:
library(tibble) library(dplyr) library(tidyr) # 原始招聘数据 recruitment_data <- tibble( CandidateType = factor(c("External", "Internal", "External", "Internal", "External", "Internal")), Step = c("Hiring", "Hiring", "Interview", "Interview", "Application", "Application"), Amount = c(304, 164, 950, 512, 8726, 828) )
2. 转换为宽格式数据
长格式的数据不利于直接计算同类型候选人的阶段转化率,我们用pivot_wider把它转成宽格式,让每个候选人类型对应三个招聘阶段的数值:
wide_recruitment <- recruitment_data %>% pivot_wider(names_from = Step, values_from = Amount)
转换后的宽格式数据长这样:
| CandidateType | Hiring | Interview | Application |
|---|---|---|---|
| External | 304 | 950 | 8726 |
| Internal | 164 | 512 | 828 |
3. 添加转化率计算列
现在就可以轻松计算两个核心转化率了:申请转面试的百分比,以及面试转录用的百分比。用mutate新增两列,我还加了round把百分比保留两位小数,看起来更整洁:
final_data <- wide_recruitment %>% mutate( # 申请到面试的转化率 = 面试人数 / 申请人数 * 100 App_to_Interview_pct = round((Interview / Application) * 100, 2), # 面试到录用的转化率 = 录用人数 / 面试人数 * 100 Interview_to_Hiring_pct = round((Hiring / Interview) * 100, 2) )
最终结果
运行完上面的代码后,你会得到包含转化率的完整表格:
| CandidateType | Hiring | Interview | Application | App_to_Interview_pct | Interview_to_Hiring_pct |
|---|---|---|---|---|---|
| External | 304 | 950 | 8726 | 10.89 | 32.00 |
| Internal | 164 | 512 | 828 | 61.84 | 32.03 |
如果你需要调整小数位数或者改成其他格式展示,随时调整代码里的参数就行~
内容的提问来源于stack exchange,提问作者Nordsted




