繁体   English   中英

计算两个日期之间的每月天数

[英]Calculating days per month between interval of two dates

我有一组事件,每个事件都有一个开始和结束日期,但它们发生在几个月的范围内。 我想创建一个表格,显示每个月的活动天数。

我有以下示例。

event_start_date <- as.Date("23/10/2012", "%d/%m/%Y")
event_end_date   <- as.Date("07/02/2013", "%d/%m/%Y")

我希望得到一个表格如下:

Oct-12  8
Nov-12  30
Dec-12  31
Jan-13  31
Feb-13  7

有没有人知道这样做的聪明而优雅的方法,还是创建一个循环系统唯一可行的方法?

Jochem

这不一定有效,因为它创建了一系列天,但它完成了这项工作:

> library(zoo)
> table(as.yearmon(seq(event_start_date, event_end_date, "day")))

Oct 2012 Nov 2012 Dec 2012 Jan 2013 Feb 2013 
       9       30       31       31        7

如果你的时间跨度比这个方法那么大,那么你必须在两个(截断的)日期之间创建一个月的第一个序列,取得diff ,并为终点做一些额外的工作。

正如DjSol在他的评论中已经指出的那样,你可以减去两个日期来获得天数:

event_start_date <- as.Date("23/10/2012", "%d/%m/%Y")
event_end_date   <- as.Date("07/02/2013", "%d/%m/%Y")
as.numeric(event_end_date - event_start_date)

那是你要的吗? 我觉得你可能有更多的问题要以这种格式获得开始和结束日期,这样你就可以轻松地减去它们,因为你提到了一个循环。 但是,如果是这样,我想我们需要更多关于实际数据的详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM