首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对R中的日期范围使用intersect()函数

问如何对R中的日期范围使用intersect()函数
EN

Stack Overflow用户
提问于 2016-10-26 13:44:39
回答 1查看 2K关注 0票数 3

下面是我的代码:

代码语言:javascript
复制
a<-"2015-12-13 09:00:00"           
b<-"2015-12-13 12:00:00"
c<-interval(a,b)

d<-"2015-12-13 09:00:00"           
e<-"2015-12-13 12:00:00"
f<-interval(d,e)
h<-intersect(c,f)
h

c、f和h的值为:

代码语言:javascript
复制
> h
[1] 10800
> c
[1] 2015-12-13 09:00:00 UTC--2015-12-13 12:00:00 UTC
> f
[1] 2015-12-13 09:00:00 UTC--2015-12-13 12:00:00 UTC
> 

但是,当我给出不同的日期/时间范围时。intersect函数不起作用。例如:如果我将变量d和e的时间从09:00:00-12:00:00更改为09:00:00 - 10:00:00,我希望intersect函数能为我提供常见的1小时的分钟数。

代码语言:javascript
复制
a<-"2015-12-13 09:00:00"           
b<-"2015-12-13 12:00:00"
c<-interval(a,b)

d<-"2015-12-13 09:00:00"           
e<-"2015-12-13 10:00:00"
f<-interval(d,e)
h<-intersect(c,f)
h

输出:

代码语言:javascript
复制
numeric(0)
> c
[1] 2015-12-13 09:00:00 UTC--2015-12-13 12:00:00 UTC
> f
[1] 2015-12-13 09:00:00 UTC--2015-12-13 10:00:00 UTC

我得到了数字(0)。谁能帮帮我。

EN

回答 1

Stack Overflow用户

发布于 2020-03-17 15:59:58

为了避免在评论中回答:

正如J_F上面提到的,您需要使用lubridate中的intersect函数。如果因为需要来自lubridate和dplyr的intersect而遇到问题,可以使用双冒号::。

双冒号::用于指定从哪个包调用函数并克服屏蔽。所以在你的代码中:

代码语言:javascript
复制
a<-"2015-12-13 09:00:00"           
b<-"2015-12-13 12:00:00"
c<-interval(a,b)

d<-"2015-12-13 09:00:00"           
e<-"2015-12-13 10:00:00"
f<-interval(d,e)
h<-lubridate::intersect(c,f)
h

[1] 2015-12-13 09:00:00 UTC--2015-12-13 10:00:00 UTC
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40254577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档