根据 DF 做一个百分比

Make a percentage depending on DF

我这里有一列火车,我需要你帮我做点事。

这是df。

              Jobs       Agency      Location       Date RXH   HS  TMM Payed
14 Netapp Gitex F1 Events House          DWTC 2015-10-19 100  8.0  800  TRUE
5     RWC Heineken    Lightblue           EGC 2015-10-09  90  4.0  360 FALSE
45        Rugby 7s          CEO Seven Stadium 2015-12-04 100 10.0 1000 FALSE
29     Playstation    Lightblue    Mirdiff CC 2015-11-11  90  7.0  630 FALSE
24    RWC Heineken    Lightblue           EGC 2015-10-31  90  4.5  405 FALSE
33     Playstation    Lightblue    Mirdiff CC 2015-11-15  90 10.0  900 FALSE
46        Rugby 7s          CEO Seven Stadium 2015-12-05 100 10.0 1000 FALSE
44        Rugby 7s          CEO Seven Stadium 2015-12-03 100 10.0 1000 FALSE

我想知道例如总行数是 10,我为“CEO”代理机构工作了 3 次,我希望 CEO 代理机构具有 30% 的值对于那个月,是否有意义?

我想根据观察的数量知道我为他们工作的百分比。

这只是一个演示 DF,看看我在说什么。

谢谢

这只是一个简单的方法,我想您可能正在寻找更多方法。但是,这里有一些代码可以为您提供示例问题的答案:

length(df$Agency[df$Agency == "CEO"]) / length(df$Agency)

第一个 length() 函数计算 df$Agency 中有多少个单元格被标记 "CEO," 然后第二个函数计算该列中的单元格总数。将一个除以另一个会给你答案。

如果您想为列中的每个机构自动执行此操作,这将变得更加复杂,但有一些基础知识。

如果我没理解错的话,你想按代理商和按月汇总。以下是如何使用 dplyr:

library(dplyr)
table1 %>%
mutate(Month=format(Date,"%m-%Y")) %>%
group_by(Month,Agency)%>%
summarise(Total=n())%>%
mutate(Pct=round(Total/sum(Total)*100))

Source: local data frame [4 x 4]
Groups: Month [3]

    Month       Agency Total   Pct
    (chr)        (chr) (int) (dbl)
1 10-2015 Events House     1    33
2 10-2015    Lightblue     2    67
3 11-2015    Lightblue     2   100
4 12-2015          CEO     3   100