Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 计算两个日期间隔之间每月的天数_R_Date_Intervals - Fatal编程技术网

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

R 计算两个日期间隔之间每月的天数,r,date,intervals,R,Date,Intervals,我有一套活动,每个都有一个开始和结束日期,但它们发生在几个月的范围内。我想创建一个表,显示此事件每个月的天数 我有下面的例子 event_start_date <- as.Date("23/10/2012", "%d/%m/%Y") event_end_date <- as.Date("07/02/2013", "%d/%m/%Y") 有人知道这样做的聪明而优雅的方法吗?或者创建一个循环系统是唯一可行的方法吗 Jochem正如DjSol在评论中指出的那样,你只需减去两个日期即可

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

我有下面的例子

event_start_date <- as.Date("23/10/2012", "%d/%m/%Y")
event_end_date   <- as.Date("07/02/2013", "%d/%m/%Y")
有人知道这样做的聪明而优雅的方法吗?或者创建一个循环系统是唯一可行的方法吗


Jochem

正如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)

event\u start\u date这不一定有效,因为它创建了一系列的天数,但它完成了以下任务:

> 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和Christoph_J,我知道这个概念,但我特别感兴趣的是如何将天数分配到所列表格中的月份。当然,这可以通过循环和月底-月初来完成。但我想知道是否有一种更优雅的方法来实现这一点?我的错!现在我知道你想做什么了。但弗洛德尔的回答似乎是一个很好的起点。
> 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