【发布时间】:2018-01-29 16:25:54
【问题描述】:
我有不同的数据集,格式如下
Time Value1 Value2 ....
11/04/2015 15:12:22 1 2 ....
11/04/2015 15:13:46 1 2 ....
我想以 15 分钟为间隔对它们进行分组。我可以用下面的代码做到这一点
data$time = cut(data$time, breaks = "15 min")
data.grouped <- aggregate(data[,c(-1)], by = list(time = datos$time), median)
问题是输出中的时间字段有以下值
12/04/2015 16:12
12/04/2015 16:27
12/04/2015 16:42
12/04/2015 16:57
我希望时间是 :00 :15 :30 或 :45。有什么方法可以强制间隔像这样或不同的方法来合并允许它的数据?
来自 dput 的样本数据:
structure(list(time = structure(list(sec = c(49, 5, 21, 37, 54,
10, 38), min = c(12L, 13L, 13L, 13L, 13L, 14L, 22L), hour = c(15L,
15L, 15L, 15L, 15L, 15L, 16L), mday = c(11L, 11L, 11L, 11L, 11L,
11L, 12L), mon = c(3L, 3L, 3L, 3L, 3L, 3L, 3L), year = c(116L,
116L, 116L, 116L, 116L, 116L, 116L), wday = c(1L, 1L, 1L, 1L,
1L, 1L, 2L), yday = c(101L, 101L, 101L, 101L, 101L, 101L, 102L
), isdst = c(1L, 1L, 1L, 1L, 1L, 1L, 1L), zone = c("CEST", "CEST",
"CEST", "CEST", "CEST", "CEST", "CEST"), gmtoff = c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_)), .Names = c("sec", "min", "hour", "mday", "mon",
"year", "wday", "yday", "isdst", "zone", "gmtoff"), class = c("POSIXlt",
"POSIXt")), value1 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("time",
"value1"), row.names = c(NA, -7L), class = "data.frame")
【问题讨论】:
-
您能否与
dput()共享示例数据,以便轻松复制/粘贴?你展示它的方式,它看起来不像是一个日期时间类,但你使用它的方式必须是......dput()也会消除任何混淆。 -
也许你只是想要
lubridate::floor_date(data$time, unit = "15 min")? (也不确定您的数据中Time的大小写,或者您的数据框名称......在问题中不一致。) -
当然,我应该将它添加到问题中还是您推荐其他网站发布它?
-
将其添加到问题中。只需将其设为相关子集,6 行 2 列就足够了。
-
我从 dput 添加了示例数据