r - lubridate::floor_date(x, "14 days"):如何防止新月份重新启动?

标签 r date lubridate floor

我使用 lubridate::floor_data 对多天进行分组,但它会以新的月份重新开始分组。这是阻止这种情况的替代方案吗?

floor_date(x, "7 天") 始终从每月的第一天开始。我希望它与 Floor_date(x, "week") 相同

使用 https://r4ds.had.co.nz/dates-and-times.html 中的数据

flights_dt %>% 
mutate(
week = floor_date(dep_time, "week"), 
day7  = floor_date(dep_time, "7 days"),
day14 = floor_date(dep_time, "14 days")) 

我希望第 7 天和第 14 天从之前的时间继续,而不是从该月的第一天重新开始。

最佳答案

解决此问题的一种方法是将日期归因于一年中的第几天。 您可以使用lubridate包来做到这一点:

output <- flights_dt %>% mutate(day_nb = lubridate::yday(deptime)

然后要按X天的时间段进行分组,您需要计算天数除以X的欧几里德:

output %>% mutate(group_7_days = day_nb %/% 7,
                  group_14_days = day_nb %/% 14)

然后您只需按这些新列进行分组即可获得每 7/14 天期间的数据

关于r - lubridate::floor_date(x, "14 days"):如何防止新月份重新启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57001716/

相关文章:

javascript - 使用 javascript 获取现有日期之前 x 天的日期

r - 如何在 R 中将时间数据拆分为时间间隔?

r - 如何在 R 中使用 lubridate 将周和年列转换为日期列

R 错误 : subscript out of bounds with by() nested with kappam. fleiss()

r - R中简单语言中的geom_point和geom_jitter有什么区别?

r - 在 debian 机器中使用 roll_lm 时出错

vba - 命名范围的数据类型

r - 在 RHEL 6.5 上安装 RPostgreSQL libpq-fe.h 报错

php - 从 MySQL 中的日期详细信息构建文本字符串

r - 如何标记时间数据中的间隙