gpt4 book ai didi

r - 绘制重叠时间段的数据

转载 作者:行者123 更新时间:2023-12-05 01:37:20 25 4
gpt4 key购买 nike

我有一个政策数据框架,如下所示

df<-data.frame(start=as.Date(c("2012-1-1","2012-3-1","2012-3-15")),end=as.Date(c("2012-12-31","2012-8-31","2012-12-31")),
premium=c(500,200,300))
df
start end premium
1 2012-01-01 2012-12-31 500
2 2012-03-01 2012-08-31 200
3 2012-03-15 2012-12-31 300

我想使用 ggplot 从 2012-01-01 和 2012-03-15 开始每天绘制总收入保费。

要了解赚取的保费,请考虑 2012 年的第一天。只有一个保单生效。该保单的总保费为 500,跨越 365 天,因此 2012 年 1 月 1 日赚取的保费为 500/365。同样,由于保单 1 和 2 生效,在 2012 年 3 月 1 日赚取的保费将为 500/365+200/183。

那么,我如何绘制 2012 年全年的每日已赚溢价图表?

最佳答案

    df$numdays <- as.numeric(df$end - df$start)
df$daily_premium <- df$premium / df$numdays

days_2012 <- seq.Date(from=as.Date('2012-01-01'), to=as.Date('2012-12-31'),by=1)

check_range <- function(day_i) apply(df, 1, function(x) ifelse(day_i >= x['start'] && day_i <= x['end'], x['daily_premium'], 0))

day_tally <- sapply(days_2012, check_range)

day_sums <- colSums(apply(day_tally,2,as.numeric))

qplot(days_2012,day_sums)

关于r - 绘制重叠时间段的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23145316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com