当我在 R 中合并日期和时间时,如何定义以小时为单位的时间段?

How to define periods of time in hours when I have merged dates and time in R?

我从一个实验中获得了一个由几列不同类型数据组成的数据集,我需要在特定日期准确开始计数并每 24 小时对数据进行分组。

缺点是我同时拥有日期和时间(即“2019-04-06 07:45:00”)。我试图计算单元格之间的差异,但我得到的是日期之间的差异,00:00:00 和 07:45:00 之间的时间包含在错误的日期。

有没有办法计算 24 小时周期?

我也尝试用 lubridate 包转换单元格的类型,但没有成功。因为我不知道如何将第一行设置为24h范围周期的起点。

提前致谢。

如果我没理解错的话,您希望将 07:45 之前的任何时间包含在前一天的数据中。如果是这样,只需从每个日期时间减去 7 小时 45 分钟并找到它的日期。

假设我们有这样的数据:

df <- data.frame(Time  = as.POSIXct(c("2020-08-20 07:45:00", 
                                      "2020-08-20 08:45:00",
                                      "2020-08-20 09:45:00",
                                      "2020-08-20 15:45:00",
                                      "2020-08-20 21:45:00",
                                      "2020-08-21 05:45:00",
                                      "2020-08-21 07:45:00",
                                      "2020-08-21 21:45:00",
                                      "2020-08-22 06:45:00",
                                      "2020-08-22 08:45:00")), Value = 1:10)

df
#>                   Time Value
#> 1  2020-08-20 07:45:00     1
#> 2  2020-08-20 08:45:00     2
#> 3  2020-08-20 09:45:00     3
#> 4  2020-08-20 15:45:00     4
#> 5  2020-08-20 21:45:00     5
#> 6  2020-08-21 05:45:00     6
#> 7  2020-08-21 07:45:00     7
#> 8  2020-08-21 21:45:00     8
#> 9  2020-08-22 06:45:00     9
#> 10 2020-08-22 08:45:00    10

那么我们可以这样做:

library(lubridate)
df$Date <- date(df$Time - hours(7) - minutes(45))

我们将对数据进行适当分组:

df
#>                   Time Value       Date
#> 1  2020-08-20 07:45:00     1 2020-08-20
#> 2  2020-08-20 08:45:00     2 2020-08-20
#> 3  2020-08-20 09:45:00     3 2020-08-20
#> 4  2020-08-20 15:45:00     4 2020-08-20
#> 5  2020-08-20 21:45:00     5 2020-08-20
#> 6  2020-08-21 05:45:00     6 2020-08-20
#> 7  2020-08-21 07:45:00     7 2020-08-21
#> 8  2020-08-21 21:45:00     8 2020-08-21
#> 9  2020-08-22 06:45:00     9 2020-08-21
#> 10 2020-08-22 08:45:00    10 2020-08-22

reprex package (v0.3.0)

于 2020 年 8 月 20 日创建