如何仅将字符串的一部分处理为 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