簡體   English   中英

計算特定時間段的周數

[英]Calculating numbers of week for a specific time period

您好,我有這個數據框,其中包含醫療保健服務的開始和結束日期。 它看起來像這樣:

id <- c("A", "B", "B", "C", "D")
start_date <- c("2014-08-18", "2014-08-04", "2016-10-10", "2016-04-01", "2015-12-31")
end_date <- c("2018-09-01", "2019-09-22", "2016-10-18", "2016-05-01", "2016-04-08")

df <- data.frame(id, start_date, end_date)

  id    start_date     end_date
1  A    2014-08-18    2018-09-01
2  B    2014-08-04    2019-09-22
3  B    2016-10-10    2016-10-18
4  C    2016-04-01    2016-05-01
5  D    2015-12-31    2016-04-08

ID 不是唯一的,因為人們可能同時擁有多項服務。 這些服務可能跨越多年。 但是,我想計算從2016-04-01開始到2017-03-31結束的 2016 財政年度中每項服務的周數。 我想要的數據框是:

  id    start_date    end_date       wks_FY16
1  A    2014-08-18    2018-09-01        52
2  B    2014-08-04    2019-09-22        52
3  B    2016-10-10    2016-10-18         1
4  C    2016-04-01    2016-05-01         4
5  D    2015-12-31    2016-04-08         1

其中“wks_FY16”代表 2016 財政年度。

我認為difftime應該有用,但我不知道如何指定我需要的時間段。 我將非常感謝你在這方面的幫助。

在對“2016”年進行更正后,我們使用difftime得到“周”的差異

library(dplyr)
df %>% 
   mutate(across(start_date:end_date, as.Date), 
   wks_FY16 = as.integer(difftime(pmin(end_date, 
    as.Date('2017-03-31')), pmax(as.Date('2016-04-01'),
     start_date), units = "weeks")))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM