我有一个包含以下示例数据的简单表。雇员9的最后一个单元格故意为空,以表示雇员9仍在工作。
| 员工ID|组群|开始日期(_D)|结束日期|
| - -|- -|- -|- -|
| 一个|系统|2020年1月12日|2021年2月14日|
| 2个|比奥弗克斯|2021年3月3日|2022年9月7日|
| 三个|系统|2021年4月3日|2022年6月6日|
| 四个|比奥弗克斯|2021年5月1日|2022年6月7日|
| 五个|系统|2021年10月1日|2022年6月7日|
| 六个|比奥弗克斯|2021年12月1日|2022年9月1日|
| 七个|系统|2022年1月1日|2022年10月1日|
| 八个|比奥弗克斯|2022年2月1日|2022年11月1日|
| 九个|系统|2022年6月1日||
我想要计算和绘制的是,在某个范围内的每一天,目前工作的员工累计工作了多少个工作日。如果我能做到这一点,我计划显示一个按组着色的区域图,或类似的东西。希望此分析将突出显示最资深员工离开公司的日期。
到目前为止,我已经导入并润滑了我的table:
#loads the table above with NA in the empty cell
DATES = read_excel(fname)
#example date range. Will likely use the minimum start date eventually
date_range = as_date(mdy("1-1-20"):mdy("1-1-23"))
#reformat the date columns and create an interval
DATES = DATES %>%
mutate(start_date_ymd = ymd(start_date)) %>%
mutate(end_date_ymd = ymd(end_date)) %>%
select(-start_date, -end_date) %>%
mutate(work_interval = interval(start_date_ymd, end_date_ymd))
# naive start - can I just plot the number of workers working on each day?
num_workers<- sapply(date_range, function(x) sum(x %within% DATES$work_interval))
tibble(date_range, num_workers) %>%
ggplot(aes(x=date_range, y=num_workers)) +
geom_point()
虽然上面的最后几行不是我想要的-为什么我看不到worker 8工作到11月的数据?
但是,即使我弄明白了为什么我的图是错误的,我真的需要一些指导,如何计算每天工作的所有员工的工作日总和。
1条答案
按热度按时间p3rjfoxz1#
您可以展开开始和结束之间所有日期的列表。然后按日期进行汇总。
你可以清楚地看到人们离开的日子,以及他们带去了多少经验。