如何在 csv 日期时间中查找间隔
How to find an interval in csv datetime
我有一个包含日期时间列的 csv 文件
> head(GU$`Local time`)
[1] "2021-01-11 00:00:00 GMT" "2021-01-11 00:01:00 GMT"
[3] "2021-01-11 00:02:00 GMT" "2021-01-11 00:03:00 GMT"
[5] "2021-01-11 00:04:00 GMT" "2021-01-11 00:05:00 GMT"
我想创建一个布尔列 return如果时间在某个时间间隔内则为 TRUE,否则为 FALSE。
我定义了开始和结束时间:
StartPreLondonInterval <- as.POSIXct("05:05:00", "%H:%M:%S", tz = "Europe/London")
EndPreLondonInterval <-as.POSIXct("07:59:59", "%H:%M:%S", tz = "Europe/London")
但他们 return 我不只是时间,而是当天到,我只想要时间 :
> StartPreLondonInterval
[1] "2021-01-27 05:05:00 GMT"
有人知道我该怎么做吗?
我在想在间隔之后将使用 lubridate 包中的 interval() 函数进行检查。
一种可能的解决方案是使用 format
函数从日期时间中提取 H:M:S
,然后检查 H:M:S
时间是否在指定范围内。
# create dummy data
datetimes <- seq(from = as.POSIXct("2021-01-11 00:00:00", tz = "GMT"), length.out = 100, by = "mins")
添加 hms
和 time_chk
列。
library(dplyr)
data.frame(local_time = datetimes) %>%
mutate(hms = format(local_time, "%H:%M:%S"),
time_chk = hms >= "00:01:00" & hms <= "00:03:00")
#---------
local_time hms time_chk
1 2021-01-11 00:00:00 00:00:00 FALSE
2 2021-01-11 00:01:00 00:01:00 TRUE
3 2021-01-11 00:02:00 00:02:00 TRUE
4 2021-01-11 00:03:00 00:03:00 TRUE
5 2021-01-11 00:04:00 00:04:00 FALSE
6 2021-01-11 00:05:00 00:05:00 FALSE
7 2021-01-11 00:06:00 00:06:00 FALSE
我有一个包含日期时间列的 csv 文件
> head(GU$`Local time`)
[1] "2021-01-11 00:00:00 GMT" "2021-01-11 00:01:00 GMT"
[3] "2021-01-11 00:02:00 GMT" "2021-01-11 00:03:00 GMT"
[5] "2021-01-11 00:04:00 GMT" "2021-01-11 00:05:00 GMT"
我想创建一个布尔列 return如果时间在某个时间间隔内则为 TRUE,否则为 FALSE。
我定义了开始和结束时间:
StartPreLondonInterval <- as.POSIXct("05:05:00", "%H:%M:%S", tz = "Europe/London")
EndPreLondonInterval <-as.POSIXct("07:59:59", "%H:%M:%S", tz = "Europe/London")
但他们 return 我不只是时间,而是当天到,我只想要时间 :
> StartPreLondonInterval
[1] "2021-01-27 05:05:00 GMT"
有人知道我该怎么做吗?
我在想在间隔之后将使用 lubridate 包中的 interval() 函数进行检查。
一种可能的解决方案是使用 format
函数从日期时间中提取 H:M:S
,然后检查 H:M:S
时间是否在指定范围内。
# create dummy data
datetimes <- seq(from = as.POSIXct("2021-01-11 00:00:00", tz = "GMT"), length.out = 100, by = "mins")
添加 hms
和 time_chk
列。
library(dplyr)
data.frame(local_time = datetimes) %>%
mutate(hms = format(local_time, "%H:%M:%S"),
time_chk = hms >= "00:01:00" & hms <= "00:03:00")
#---------
local_time hms time_chk
1 2021-01-11 00:00:00 00:00:00 FALSE
2 2021-01-11 00:01:00 00:01:00 TRUE
3 2021-01-11 00:02:00 00:02:00 TRUE
4 2021-01-11 00:03:00 00:03:00 TRUE
5 2021-01-11 00:04:00 00:04:00 FALSE
6 2021-01-11 00:05:00 00:05:00 FALSE
7 2021-01-11 00:06:00 00:06:00 FALSE