如何计算和显示二进制数据框中的百分比

时间:2018-04-11 12:01:36

标签: r

我正在尝试创建一个表格,在那里我计算招聘流程不同阶段的申请人百分比。我有一个如下所示的数据框:

# 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。

1 个答案:

答案 0 :(得分:2)

您可以按tibbleCandidateType进行分组,并将每行的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%