如何计算特定条件下的计数百分比?

时间:2019-05-10 09:31:07

标签: r dplyr

我有看起来像这样的数据。

company  date  auditor  change  count
A        2016  ZXY      0       1
A        2015  ZXY      0       2
A        2014  ZXY      0       3
A        2013  FPQ      1       4
A        2012  ZXY      1       5
B        2017  ERW      0       1
B        2016  ERW      0       2
B        2015  ERW      0       3
B        2014  ERW      0       4
B        2013  ERW      0       5
.
.
.
.

此数据表明审计师是否在最近五年内更换了工作。如果有开关,则更改值为“ 1”。我想计算

1)去年更换公司的百分比(count = 1)。

2)过去五年未进行任何转换的公司所占的百分比(count = 0、1、2、3、4、5的更改= 0)。

3)五年内经历过一次以上更改的公司的百分比(更改= 1表示计数=超过一次)

我只想知道怎么做的逻辑。

1 个答案:

答案 0 :(得分:2)

我可能会使用dplyr对更改列求和:

changeSummary <- yourData %>%
  group_by(company) %>%
  summarise(sumChanges = sum(change))

这将为每个公司列出一次提供一个数据框,并为每个公司提供变化计数。然后,您可以轻松轻松地为上述3个条件中的任何一个获取百分比。例如。您的第一种情况(计数== 1):

answer1 = length(filter(changeSummary, sumChanges == 1)) / length(sumChanges)