【发布时间】:2019-03-21 15:54:24
【问题描述】:
我必须要合并的数据集:
数据集 1:包含“perc”有效的时间段:
set.seed(1)
example_df <- data.frame(ID = rep(1:2, each=2),
start = c(as.Date("2014-01-01"), as.Date("2014-03-05"), as.Date("2014-01-13"), as.Date("2014-03-15")),
end = c(as.Date("2014-03-05"), as.Date("2014-04-12"), as.Date("2014-03-01"), as.Date("2014-04-02")),
perc = rnorm(mean= 30, sd= 10, 4))
数据集 2:包含每个月的工资:
month_start <- as.Date("2014-01-01") + months(0:3)
month_end <- ceiling_date(month_start, "month") - days(1)
set.seed(1)
example_df2 <- data.frame(month_start, month_end,
ID = rep(1:2, each=4),
pay = rnorm(mean= 2000, sd= 80, 8))
我们的目标是根据每个人的工作量计算每个月的工资。重要的是要考虑 perc 的有效时间段,这可能会在一个月内发生变化。
例如:
2014 年 1 月 ID 1:支付 = 1949.884(支付)*23.73546(perc)/100
因为 perc 在整个 1 月都有效。
但是,对于 3 月,直到 5 日,perc 为 23.73546,而 3 月剩余时间的 perc 为 31.83643。
因此,
ID 1 的 2014 年 3 月:工资 = 1949.884(工资)*23.73546(perc)/100/31(3 月天数)*5 + 1949.884(工资)*31.83643(perc)/100/31(3 月天数) *26
【问题讨论】: