【问题标题】:How to convert datetime to POSIXct or numeric/ aggregate timeseries intervals to hourly intervals?如何将日期时间转换为 POSIXct 或将数字/聚合时间序列间隔转换为每小时间隔?
【发布时间】:2019-10-10 20:03:47
【问题描述】:

日期径流

 01/01/1989 00:05:00    0
 01/01/1989 00:10:00    0
 01/01/1989 00:15:00    0
 01/01/1989 00:20:00    0
 01/01/1989 00:25:00    0
 01/01/1989 00:30:00    0
 01/01/1989 00:35:00    0
 01/01/1989 00:40:00    0
 01/01/1989 00:45:00    0
 01/01/1989 00:50:00    0
 01/01/1989 00:55:00    0
 01/01/1989 01:00:00    0
 01/01/1989 01:05:00    0
 01/01/1989 01:10:00    0
 01/01/1989 01:15:00    0
 01/01/1989 01:20:00    0
 01/01/1989 01:25:00    0
 01/01/1989 01:30:00    0
 01/01/1989 01:35:00    0
 01/01/1989 01:40:00    0
 01/01/1989 01:45:00    0
 01/01/1989 01:50:00    0
 01/01/1989 01:55:00    0
 01/01/1989 02:00:00    0
 01/01/1989 02:05:00    0
 01/01/1989 02:10:00    0
 01/01/1989 02:15:00    0
 01/01/1989 02:20:00    0
 01/01/1989 02:25:00    0
 01/01/1989 02:30:00    0
 01/01/1989 02:35:00    0
 01/01/1989 02:40:00    0
 01/01/1989 02:45:00    0
 01/01/1989 02:50:00    0
 01/11/1989 14:00:00    0
 01/11/1989 14:05:00    0
 01/11/1989 14:10:00    0
 01/11/1989 14:15:00    0
 01/11/1989 14:20:00    0
 01/11/1989 14:25:00    0
 01/11/1989 14:30:00    0

我一直在尝试通过添加该小时的“径流”将时间序列数据聚合到 1 小时的时间序列。

 ##aggregate timeseries by the hour and sum the runoff
 aggregate(LD1['Surface Runoff'], list(cut(LD1$Date, "1 hour")), sum)

我收到错误:'x' must be numeric in cut(LD1$Date, "1 hour")

我尝试将日期时间转换为 POSIXct,但它一直说我的数据不是明确的格式,这确实有意义,因为日期不是按顺序排列的。

我的最终结果与 Aggregate 5-Minute data to hourly sums with present NA's 但我不知道下一步该怎么做。

非常感谢任何帮助。

谢谢。

编辑:这是使用 dput 函数的日期/时间示例。

结构(列表(日期 = 结构(1:217,.Label = c(“06/04/2001 00:00:00”, “ 06/04/2001 00:05:00”、“ 06/04/2001 00:10:00”、“ 06/04/2001 00:15:00”、 “ 06/04/2001 00:20:00”、“ 06/04/2001 00:25:00”、“ 06/04/2001 00:30:00”、 “ 06/04/2001 00:35:00”、“ 06/04/2001 00:40:00”、“ 06/04/2001 00:45:00”、 “ 06/04/2001 00:50:00”、“ 06/04/2001 00:55:00”、“ 06/04/2001 01:00:00”、 " 06/04/2001 01:05:00", " 06/04/2001 01:10:00", " 06/04/2001 01:15:00", “ 06/04/2001 01:20:00”、“ 06/04/2001 01:25:00”、“ 06/04/2001 01:30:00”、 “ 06/04/2001 01:35:00”、“ 06/04/2001 01:40:00”、“ 06/04/2001 01:45:00”、 “ 06/04/2001 01:50:00”、“ 06/04/2001 01:55:00”、“ 06/04/2001 02:00:00”、 " 06/04/2001 02:05:00", " 06/04/2001 02:10:00", " 06/04/2001 02:15:00", “ 06/04/2001 02:20:00”、“ 06/04/2001 02:25:00”、“ 06/04/2001 02:30:00”、 “ 06/04/2001 02:35:00”、“ 06/04/2001 02:40:00”、“ 06/04/2001 02:45:00”、 “ 06/04/2001 02:50:00”、“ 06/04/2001 02:55:00”、“ 06/04/2001 03:00:00”、 “ 06/04/2001 03:05:00”、“ 06/04/2001 03:10:00”、“ 06/04/2001 03:15:00”、 “ 06/04/2001 03:20:00”、“ 06/04/2001 03:25:00”、“ 06/04/2001 03:30:00”、 “ 06/04/2001 03:35:00”、“ 06/04/2001 03:40:00”、“ 06/04/2001 03:45:00”、 “ 06/04/2001 03:50:00”、“ 06/04/2001 03:55:00”、“ 06/04/2001 04:00:00”、 “ 06/04/2001 04:05:00”、“ 06/04/2001 04:10:00”、“ 06/04/2001 04:15:00”、 “ 06/04/2001 04:20:00”、“ 06/04/2001 04:25:00”、“ 06/04/2001 04:30:00”、 “ 06/04/2001 04:35:00”、“ 06/04/2001 04:40:00”、“ 06/04/2001 04:45:00”、 “ 06/04/2001 04:50:00”、“ 06/04/2001 04:55:00”、“ 06/04/2001 05:00:00”、 " 06/04/2001 05:05:00", " 06/04/2001 05:10:00", " 06/04/2001 05:15:00", “ 06/04/2001 05:20:00”、“ 06/04/2001 05:25:00”、“ 06/04/2001 05:30:00”、 “ 06/04/2001 07:00:00”、“ 06/04/2001 07:05:00”、“ 06/04/2001 07:10:00”、 “ 06/04/2001 07:15:00”、“ 06/04/2001 07:20:00”、“ 06/04/2001 07:25:00”、 “ 06/04/2001 07:30:00”、“ 06/04/2001 07:35:00”、“ 06/04/2001 07:40:00”、 “ 06/04/2001 07:45:00”、“ 06/04/2001 07:50:00”、“ 06/04/2001 07:55:00”、 “ 06/04/2001 08:00:00”、“ 06/04/2001 08:05:00”、“ 06/04/2001 08:10:00”、 “ 06/04/2001 08:15:00”、“ 06/04/2001 08:20:00”、“ 06/04/2001 08:25:00”、 “ 06/04/2001 08:30:00”、“ 06/04/2001 08:35:00”、“ 06/04/2001 08:40:00”、 “ 06/04/2001 08:45:00”、“ 06/04/2001 08:50:00”、“ 06/04/2001 08:55:00”、 " 06/04/2001 09:00:00", " 06/04/2001 09:05:00", " 06/04/2001 09:10:00", “ 06/04/2001 09:15:00”、“ 06/04/2001 09:20:00”、“ 06/04/2001 09:25:00”、 “ 06/04/2001 09:30:00”、“ 06/04/2001 09:35:00”、“ 06/04/2001 09:40:00”、 “ 06/04/2001 09:45:00”、“ 06/04/2001 09:50:00”、“ 06/04/2001 09:55:00”、 “ 06/04/2001 10:00:00”、“ 06/04/2001 10:05:00”、“ 06/04/2001 10:10:00”、 “ 2001 年 6 月 4 日 10:15:00”、“ 2001 年 6 月 4 日 10:20:00”、“ 2001 年 6 月 4 日 10:25:00”、 “ 2001 年 6 月 4 日 10:30:00”、“ 2001 年 6 月 4 日 10:35:00”、“ 2001 年 6 月 4 日 10:40:00”、 “ 2001 年 6 月 4 日 10:45:00”、“ 2001 年 6 月 4 日 10:50:00”、“ 2001 年 6 月 4 日 10:55:00”、 “ 2001 年 6 月 4 日 11:00:00”、“ 2001 年 6 月 4 日 11:05:00”、“ 2001 年 6 月 4 日 11:10:00”、 “ 2001 年 6 月 4 日 11:15:00”、“ 2001 年 6 月 4 日 11:20:00”、“ 2001 年 6 月 4 日 11:25:00”、 “ 2001 年 6 月 4 日 11:30:00”、“ 2001 年 6 月 9 日 16:00:00”、“ 2001 年 6 月 9 日 16:05:00”、 " 2001 年 6 月 9 日 16:10:00"、" 2001 年 6 月 9 日 16:15:00"、" 2001 年 6 月 9 日 16:20:00"、 “ 2001 年 6 月 9 日 16:25:00”、“ 2001 年 6 月 9 日 16:30:00”、“ 2001 年 6 月 9 日 16:35:00”、 “ 2001 年 6 月 9 日 16:40:00”、“ 2001 年 6 月 9 日 16:45:00”、“ 2001 年 6 月 9 日 16:50:00”、 “ 06/09/2001 16:55:00”、“ 06/09/2001 17:00:00”、“ 06/09/2001 17:05:00”、 " 2001 年 6 月 13 日 11:00:00"、" 2001 年 6 月 13 日 11:05:00"、" 2001 年 6 月 13 日 11:10:00"、 " 2001 年 6 月 13 日 11:15:00"、" 2001 年 6 月 13 日 11:20:00"、" 2001 年 6 月 13 日 11:25:00"、 “ 2001 年 6 月 13 日 11:30:00”、“ 2001 年 6 月 13 日 11:35:00”、“ 2001 年 6 月 13 日 11:40:00”、 “ 2001 年 6 月 13 日 11:45:00”、“ 2001 年 6 月 13 日 11:50:00”、“ 2001 年 6 月 13 日 11:55:00”、 “ 2001 年 6 月 13 日 12:00:00”、“ 2001 年 6 月 13 日 12:05:00”、“ 2001 年 6 月 13 日 12:10:00”、 “ 2001 年 6 月 13 日 12:15:00”、“ 2001 年 6 月 13 日 12:20:00”、“ 2001 年 6 月 13 日 12:25:00”、 “ 2001 年 6 月 13 日 12:30:00”、“ 2001 年 6 月 13 日 12:35:00”、“ 2001 年 6 月 13 日 12:40:00”、 “ 2001 年 6 月 13 日 12:45:00”、“ 2001 年 6 月 13 日 12:50:00”、“ 2001 年 6 月 13 日 12:55:00”、 " 2001 年 6 月 13 日 13:00:00"、" 2001 年 6 月 13 日 13:05:00"、" 2001 年 6 月 13 日 13:10:00"、 " 2001 年 6 月 13 日 13:15:00"、" 2001 年 6 月 13 日 13:20:00"、" 2001 年 6 月 13 日 13:25:00"、 “ 2001 年 6 月 13 日 13:30:00”、“ 2001 年 6 月 13 日 13:35:00”、“ 2001 年 6 月 13 日 13:40:00”、 “ 2001 年 6 月 13 日 13:45:00”、“ 2001 年 6 月 13 日 13:50:00”、“ 2001 年 6 月 13 日 13:55:00”、 “ 2001 年 6 月 13 日 14:00:00”、“ 2001 年 6 月 13 日 14:05:00”、“ 2001 年 6 月 13 日 14:10:00”、 “ 2001 年 6 月 13 日 14:15:00”、“ 2001 年 6 月 13 日 14:20:00”、“ 2001 年 6 月 13 日 14:25:00”、 " 2001 年 6 月 13 日 14:30:00"、" 2001 年 6 月 13 日 14:35:00"、" 2001 年 6 月 13 日 14:40:00"、 “ 2001 年 6 月 13 日 14:45:00”、“ 2001 年 6 月 13 日 14:50:00”、“ 2001 年 6 月 13 日 14:55:00”、 “ 2001 年 6 月 13 日 15:00:00”、“ 2001 年 6 月 13 日 15:05:00”、“ 2001 年 6 月 13 日 15:10:00”、 “ 2001 年 6 月 13 日 15:15:00”、“ 2001 年 6 月 13 日 15:20:00”、“ 2001 年 6 月 13 日 15:25:00”、 " 2001 年 6 月 13 日 15:30:00"、" 2001 年 6 月 13 日 15:35:00"、" 2001 年 6 月 13 日 15:40:00"、 " 2001 年 6 月 13 日 15:45:00"、" 2001 年 6 月 13 日 15:50:00"、" 2001 年 6 月 13 日 15:55:00"、 “ 2001 年 6 月 13 日 16:00:00”、“ 2001 年 6 月 13 日 16:05:00”、“ 2001 年 6 月 13 日 16:10:00”、 “ 2001 年 6 月 13 日 16:15:00”、“ 2001 年 6 月 13 日 16:20:00”、“ 2001 年 6 月 13 日 16:25:00”、 “ 2001 年 6 月 20 日 17:00:00”、“ 2001 年 6 月 20 日 17:05:00”、“ 2001 年 6 月 20 日 17:10:00”、 “ 2001 年 6 月 20 日 17:15:00”、“ 2001 年 6 月 20 日 17:20:00”、“ 2001 年 6 月 20 日 17:25:00”、 " 2001 年 6 月 20 日 17:30:00"、" 2001 年 6 月 20 日 17:35:00"、" 2001 年 6 月 20 日 17:40:00"、 “ 2001 年 6 月 20 日 17:45:00”、“ 2001 年 6 月 20 日 17:50:00”、“ 2001 年 6 月 20 日 17:55:00”、 “ 2001 年 6 月 20 日 18:00:00”、“ 2001 年 6 月 20 日 18:05:00”、“ 2001 年 8 月 6 日 17:00:00” ), class= "因子"), 径流 = c(0, 0, 0, 0.009, 0.032, 0.04, 0.043, 0.044, 0.044, 0.044, 0.044, 0.044, 0.044, 0.026, 0.024, 0.023, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.059, 0.065, 0.066, 0.067, 0.067, 0.067, 0.067, 0.067, 0.067, 0.067, 0.067, 0.067, 0.03, 0.025, 0.023, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.098, 0.109, 0.111, 0.112, 0.112, 0.112, 0.112, 0.112, 0.112, 0.112, 0.112, 0.112, 0.017, 0.007, 0.003, 0.002, 0.001, 0.001, 0, 0.009, 0.017, 0.019, 0.021, 0.021, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.059, 0.065, 0.066, 0.067, 0.067, 0.067, 0.067, 0.067, 0.067, 0.067, 0.067, 0.067, 0.048, 0.045, 0.045, 0.045, 0.044, 0.044, 0.044, 0.044, 0.044, 0.044, 0.044, 0.044, 0.009, 0.004, 0.002, 0.001, 0.001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.014, 0.068, 0.084, 0.088, 0.089, 0.089, 0.089, 0.089, 0.089, 0.089, 0.089, 0.089, 0.089, 0.089, 0.089, 0.089, 0.089, 0.089, 0.089, 0.089, 0.089, 0.089, 0.089, 0.089, 0.089, 0.051, 0.046, 0.045, 0.044, 0.044, 0.044, 0.044, 0.044, 0.044, 0.044, 0.044, 0.044, 0.009, 0.004, 0.002, 0.001, 0.001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), class= "data.frame", row.names = c(不, -217L))

【问题讨论】:

  • 我使用 dput 添加了一个数据帧示例。这是你要求的吗?
  • 阿尔菲,那是不完整的。 dput() 为您提供可以重新评估以获得相同对象的东西。您上面显示的内容不完整:缺少开头,并且它只是两列之一。但是它确实显示了您的问题:日期仍然是factor,您想要as.character() 并将其提供给时间解析器之一以获取POSIXct。我会使用anytime::anytime(),它甚至可以使用因子变量。
  • 我已经使用 dput 函数 Dirk 添加了示例数据框。最初因为我有一个非常大的数据集,我无法复制整个数据框,所以我取了一部分原始数据框并运行了该函数。我使用过任何时间::anytime() 但我仍然不断收到同样的错误。

标签: r


【解决方案1】:

下面是一个基本函数的例子:

library(data.table)
dt <- read.table(text = "datetime,value
 01/01/1989 00:05:00,0
 01/01/1989 00:10:00,0
 01/01/1989 00:15:00,0
 01/01/1989 00:20:00,0
 01/01/1989 00:25:00,0
 01/01/1989 00:30:00,0
 01/01/1989 00:35:00,0
 01/01/1989 00:40:00,0
 01/01/1989 00:45:00,0
 01/01/1989 00:50:00,0
 01/01/1989 00:55:00,0
 01/01/1989 01:00:00,0
 01/01/1989 01:05:00,0
 01/01/1989 01:10:00,0
 01/01/1989 01:15:00,0
 01/01/1989 01:20:00,0
 01/01/1989 01:25:00,0
 01/01/1989 01:30:00,0
 01/01/1989 01:35:00,0
 01/01/1989 01:40:00,0
 01/01/1989 01:45:00,0
 01/01/1989 01:50:00,0
 01/01/1989 01:55:00,0
 01/01/1989 02:00:00,0
 01/01/1989 02:05:00,0
 01/01/1989 02:10:00,0
 01/01/1989 02:15:00,0
 01/01/1989 02:20:00,0
 01/01/1989 02:25:00,0
 01/01/1989 02:30:00,0
 01/01/1989 02:35:00,0
 01/01/1989 02:40:00,0
 01/01/1989 02:45:00,0
 01/01/1989 02:50:00,0
 01/11/1989 14:00:00,0
 01/11/1989 14:05:00,0
 01/11/1989 14:10:00,0
 01/11/1989 14:15:00,0
 01/11/1989 14:20:00,0
 01/11/1989 14:25:00,0
 01/11/1989 14:30:00,0", header = TRUE, row.names = NULL, sep = ",")
dt <- setDT(dt)
dt[, datetime := as.POSIXct(datetime, format = "%d/%m/%Y %H:%M:%S")]
dt[, datehour := as.POSIXct(round(datetime, "hours"))]

可以在此处找到其他舍入选项:

Round a POSIX date (POSIXct) with base R functionality

Sting 到日期时间的转换在这里:

converting datetime string to POSIXct date/time format in R

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-16
    • 2020-09-20
    • 2023-01-11
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    相关资源
    最近更新 更多