我有一列火车在这里,我需要你帮助我。
这是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,看看我在说什么。
由于
答案 0 :(得分:3)
如果我理解正确,您希望按代理商和按月汇总。以下是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
答案 1 :(得分:2)
这只是一种简单的方法,我怀疑你可能正在寻找更多。但是,这里有一些代码可以为您提供示例问题的答案:
length(df$Agency[df$Agency == "CEO"]) / length(df$Agency)
第一个length()函数计算df $ Agency中有多少个单元被标记为" CEO,"然后第二个计算该列中的单元格总数。将它们分开将给你答案。
如果您想为列中的每个代理商自动执行此操作,这将变得更加复杂,但有一些基础知识。