保持聚合时间序列的课程日期

时间:2015-03-31 22:15:55

标签: r date format time-series week-number

我希望聚合时间序列数据以获取每周数据,但这样做时间变量的类变为"字符"而不是"日期"因此失去了作为约会的任何酷炫功能。

这非常烦人,尤其是当我需要绘制数据并使用中断和标签进行播放时。

以下是我面临的一个简短例子

# Storing some random daily data
require(plyr)
require(dplyr)
df = data.frame(date = seq.Date(from = as.Date('2013-01-01'),
                                to = as.Date('2014-12-31'),
                                by = 'day'),
                data = rnorm(365*2))

将数据汇总到一些每周数据

wdf = df %>%
    mutate(week = strftime(df$date, format = '%Y-%U')) %>%
    group_by(week) %>%
    summarise(wdata = max(data))

不幸的是,现在变量周不属于"日期"。是否有可能保持格式为%Y-%V的对象的类日期?

提前致谢!

EB

1 个答案:

答案 0 :(得分:1)

使用awesome lubridate包。它有一个floor_date函数,可以根据几个时间单位(包括你想要的几周)向下舍入日期。

library(lubridate)

wdf = df %>%
  mutate(week = floor_date(date, unit = 'week')) %>%
  group_by(week) %>%
  summarise(wdata = max(data))