lubridate::floor_date(x, "14 days"): 如何防止新月份重启?
lubridate::floor_date(x, "14 days"): how to prevent restart with a new month?
我正在使用 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 天周期的数据
我想我可能已经找到了解决方案:
df1<-flights_dt %>%
mutate(
dep_date = as_date(dep_time),
date_14days = dmy(01012013) + floor(((dep_date) - dmy(01012013))/14)*14)
我正在使用 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 天周期的数据
我想我可能已经找到了解决方案:
df1<-flights_dt %>%
mutate(
dep_date = as_date(dep_time),
date_14days = dmy(01012013) + floor(((dep_date) - dmy(01012013))/14)*14)