如何解决如何在 csv 日期时间中找到一个间隔
我有一个带有日期时间列的 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"
我想创建一个布尔列,如果时间在某个时间间隔内返回 TRUE,否则返回 FALSE。
我定义了开始和结束时间:
StartPreLondonInterval <- as.POSIXct("05:05:00","%H:%M:%S",tz = "Europe/London")
EndPreLondonInterval <-as.POSIXct("07:59:59",tz = "Europe/London")
但他们返回给我的不仅是时间,还有当天,我只想要时间:
> 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。