如何仅将字符串的一部分处理为 R 中的日期

我有一些来自 api 的数据,它以一种不寻常的格式提供时间戳,最后包括一周中的哪一天和一年中的哪一天。例如 [2021, 8, 22, 22, 0, 20, 6, 234] 是 2021/08/22 22:00:20 在一周的第 6 天,一年的第 234 天。我想将其转换为 lubridate 日期时间对象,但不知道如何去除最后两个值。

例如我想把这个数据

example <- tibble(timestamp = c("[2021, 8, 22, 22, 0, 20, 6, 234]", "[2021, 8, 22, 22, 0, 30, 6, 234]", "[2021, 8, 22, 22, 0, 41, 6, 234]"), temperature = c(28,29,30))并将时间戳列转换为 lubridate 日期时间类型。有任何想法吗?

回答

您可以使用 strptime 然后提供正确的格式字符串

example %>% dplyr::mutate(
datetime = strptime(timestamp, format = "[%Y, %m, %d, %H, %M, %S"))
# A tibble: 3 x 3
timestamp                        temperature datetime
<chr>                                  <dbl> <dttm>
1 [2021, 8, 22, 22, 0, 20, 6, 234]          28 2021-08-22 22:00:20
2 [2021, 8, 22, 22, 0, 30, 6, 234]          29 2021-08-22 22:00:30
3 [2021, 8, 22, 22, 0, 41, 6, 234]          30 2021-08-22 22:00:41

以上是如何仅将字符串的一部分处理为 R 中的日期的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>