【发布时间】:2021-07-03 00:38:30
【问题描述】:
我有一个数据集,我想分成 10 天的时间间隔。我在下面包含的代码可以做到这一点,但是在过去一周左右的时间里,有些日子(例如,一个月的 31 日或 30 日)仍然会自行结束。
我想删除创建它的间隔或将它们包含在以前的间隔中。
例如: 如果我将 1 月份以 10 天为间隔,它会将前 10 天放在列表的一个元素中,第二个 10 天放在另一个元素中,第三个 10 天放在另一个元素中。然后它会将 1 月 31 日单独放入列表元素中。
我想要的输出是要么从列表中删除这些元素,要么最好将它们包含在第三个 10 天间隔中。可以这样做吗?如果是这样,最好的方法是什么?
library(lubridate)
library(tidyverse)
date <- rep_len(seq(dmy("26-12-2010"), dmy("20-12-2013"), by = "days"), 500)
ID <- rep(seq(1, 5), 100)
df <- data.frame(date = date,
x = runif(length(date), min = 60000, max = 80000),
y = runif(length(date), min = 800000, max = 900000),
ID)
int <- df %>%
arrange(ID) %>%
mutate(new = ceiling_date(date, '10 day')) %>%
# mutate(cut = data.table::rleid(cut(new, breaks = "10 day"))) %>%
group_by(new) %>%
group_split()
【问题讨论】: