jan_1_to_5 <- interval(as.Date("2000-01-01"), as.Date("2000-01-05"))
jan_3_to_9 <- interval(as.Date("2000-01-03"), as.Date("2000-01-09"))
jan_11_to_12 <- interval(as.Date("2000-01-11"), as.Date("2000-01-12"))
# phint_squash: merge intervals from a phinterval/Interval vector
phint_squash(c(jan_1_to_5, jan_3_to_9, jan_11_to_12))
# datetime_squash: merge intervals from start/end vectors
datetime_squash(
start = as.Date(c("2000-01-01", "2000-01-03", "2000-01-11")),
end = as.Date(c("2000-01-05", "2000-01-09", "2000-01-12"))
)
# NA values are removed by default
phint_squash(c(jan_1_to_5, jan_3_to_9, jan_11_to_12, NA))
# Set na.rm = FALSE to propagate NA values
phint_squash(c(jan_1_to_5, jan_3_to_9, jan_11_to_12, NA), na.rm = FALSE)
# Squash within groups
phint_squash(
c(jan_1_to_5, jan_3_to_9, jan_11_to_12),
by = c(1, 1, 2)
)
# Return a data frame with by values
phint_squash(
c(jan_1_to_5, jan_3_to_9, jan_11_to_12),
by = c("A", "A", "B"),
keep_by = TRUE
)
# Control output order with order_by
phint_squash(
c(jan_1_to_5, jan_3_to_9, jan_11_to_12),
by = c(2, 2, 1),
order_by = TRUE
)
# empty_to determines the result of empty inputs
empty <- phinterval()
phint_squash(empty, empty_to = "hole")
phint_squash(empty, empty_to = "na")
phint_squash(empty, empty_to = "empty")
Run the code above in your browser using DataLab