gpt4 book ai didi

R:如何按小时和分钟过滤时间戳?

转载 作者:行者123 更新时间:2023-12-04 09:08:09 25 4
gpt4 key购买 nike

我正在为以下示例而苦苦挣扎

time = c('2013-01-03 21:59:21.549', '2013-01-04 22:00:21.549', '2013-01-05 22:01:21.222', '2013-01-06 22:06:23.559' )
value = c(1,2,3,4)

data <- data_frame(time, value)
data <-data %>% mutate(time = ymd_hms(time))

> data
# A tibble: 4 × 2
time value
<dttm> <dbl>
1 2013-01-03 21:59:21 1
2 2013-01-04 22:00:21 2
3 2013-01-05 22:01:21 3
4 2013-01-06 22:06:23 4

我该如何写 dplyr::filter语句只保留 21:59 之间的观察结果和 22:01 (包括)每天?

单独玩 hour(time)minute(time)在这里似乎不太好用。

我在这里错过了什么吗?

预期输出:仅第 1,2 和 3 行。
谢谢!

最佳答案

2019年来了!
这是使用 as.hms 的更好(更简单)的解决方案. tz论据是强制性的。

    time_str = c('2013-01-03 21:59:21.549', '2013-01-04 22:00:21.549', '2013-01-05 
22:01:21.222', '2013-01-06 22:06:23.559' )
value = c(1,2,3,4)
data <- tibble(time_str, value)

data %>% mutate(timestamp_utc = ymd_hms(time_str, tz = 'UTC'),
timestamp_est = with_tz(timestamp_utc, 'America/New_York'),
time_est = as.hms(timestamp_est, tz = 'America/New_York')) %>%
filter(time_est >= hms::as.hms('16:59:00', tz = 'America/New_York'),
time_est <= hms::as.hms('17:01:00', tz = 'America/New_York'))


会做这份工作
# A tibble: 2 x 5
time_str value timestamp_utc timestamp_est time_est
<chr> <dbl> <dttm> <dttm> <time>
1 2013-01-03 21:59:21.549 1 2013-01-03 21:59:21.549 2013-01-03 16:59:21.549 16:59.549
2 2013-01-04 22:00:21.549 2 2013-01-04 22:00:21.549 2013-01-04 17:00:21.549 17:00.549

关于R:如何按小时和分钟过滤时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41465131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com