【发布时间】:2015-03-31 22:15:55
【问题描述】:
我想聚合时间序列数据以获取每周数据,但这样做时时间变量的类变为“字符”而不是“日期”,因此失去了作为日期的任何酷特性。
这很烦人,尤其是当我需要绘制数据并使用中断和标签时。
这是我所面临的一个简短示例
# 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))
不幸的是,现在变量 week 不属于“Date”类。关于为 %Y-%V 格式的对象保留课程日期的可能性有什么想法吗?
提前致谢!
EB
【问题讨论】:
-
日期分类变量是具有属性的整数。任何格式操作的结果都是字符分类对象。并且....您如何建议将 7 天间隔组保留为“日期”?
-
好吧,其实我是在问。
-
为什么要导入 plyr?你这里只需要 dplyr。
-
到底要问什么?你希望星期是数字还是字符?周数究竟如何?根据 POSIX 标准,您希望它们为 0-53 吗?
-
@BondedDust 我希望以星期为日期,而不是整数或字符。
标签: r date format time-series week-number