gpt4 book ai didi

Rstats lubridate ... 区间向量

转载 作者:行者123 更新时间:2023-12-03 23:57:27 27 4
gpt4 key购买 nike

我正在尝试处理一组润滑间隔并确定日期是否在该组的任何成员内。
我的时间间隔不重叠,但最好给出一般答案。)

在开始数据分析之前,我不知道那组间隔中有多少个间隔:

library(lubridate)

#Create 4 dates; 2 pairs

start1 <-ymd("2015-01-01")
stop1 <-ymd("2015-01-08")

start2 <-ymd("2015-02-01")
stop2 <-ymd("2015-02-08")

#Make 2 non-overlapping intervals

interval1 <-start1%--%stop1

interval2 <-start2%--%stop2

#two more dates, each within an interval

day1 <-ymd("2015-01-04")

day2 <-ymd("2015-02-04")

#now test the new dates against the intervals.

day1 %within%interval1 #TRUE

day2 %within%interval1 #FALSE

day2 %within%interval2 #TRUE

我可以这样做:
day2 %within%c(interval1, interval2) #(FALSE, TRUE)

如果我考虑一下,我相信我可以将其强制为 TRUE。

但我怎么能问?:
#Don't Run:

INTERVALS <-c(interval1, interval2, ... intervalN)

day2 %within% INTERVALS

例如X 是否在 Y 工作时发生,其中“Y 工作时”是间隔向量。

有什么建议?

最佳答案

您可以矢量化所有内容,然后使用 lapply使用 %within%对于您要检查的每一天:

library(lubridate)

start <-ymd("2015-01-01", "2015-02-01")
stop <-ymd("2015-01-08", "2015-02-08")

days <-ymd("2015-01-04", "2015-02-04")

lapply(days, `%within%`, start %--% stop)
#> [[1]]
#> [1] TRUE FALSE
#>
#> [[2]]
#> [1] FALSE TRUE

这是 days 的每个元素的列表是否在每个区间。检查 days的每个元素是否在任何区间内,为 *apply 写一个匿名函数:

sapply(days, function(x){any(x %within% interval(start, stop))})
## [1] TRUE TRUE

关于Rstats lubridate ... 区间向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41905358/

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