根据 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
我这里有一列火车,我需要你帮我做点事。
这是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