df <- data.frame(id=c(1, 2, 3),
interval=c(
new_interval(ymd("2001-01-01"), ymd("2002-01-01")),
new_interval(ymd("2001-01-01"), ymd("2004-01-01")),
new_interval(ymd("2001-02-01"), ymd("2002-01-01"))
))
df
# id interval
# 1 1 2001-01-01 UTC--2002-01-01 UTC
# 2 2 2001-01-01 UTC--2004-01-01 UTC
# 3 3 2001-02-01 UTC--2002-01-01 UTC
lubridate::union(lubridate::union(df$interval[1], df$interval[2]),
df$interval[3])
# [1] 2001-01-01 UTC--2004-01-01 UTC
这是正确的结果。
但是为什么lubridate::union
不适用于Reduce
?
Reduce(lubridate::union, df$interval)
# [1] 31536000 94608000 28857600
间隔对象似乎被转换为数字太儿子(在应用union
之前)。
这将是巨大的,任何'lubridate'包的mantainers的可以提高它使用'Reduce'功能允许。我注册了一个新问题:https://github.com/hadley/lubridate/issues/348 – user3808394
仅供将来参考。如果您在问题仍未解决的情况下打开github问题,请在此问题中记下它,以便人们很容易意识到这一点。我回答了这个问题,但没有看到你的github问题的链接,这个问题在我提交答案之前已经关闭了。干杯。 –