使用 dplyr 在 R 中解析和使用微秒精度时间戳

问题描述 投票:0回答:1

我计划以“DD/MM/YY HH:MM:SS.mmmuuun”格式收集微秒精度时间戳的数据?我将如何在 R 中解析并继续在 dplyr 管道中工作?

示例:

"26/09/24 11a:16:36.5933210"
df <- data.frame(
  ID = c(1, 1, 1),
  Timestamp = c("26/09/24 11a:16:36.5933210",
                "26/09/24 11a:16:36.6518648",
                "26/09/24 11p:16:36.7280308"),
  CH = c(11, 11, 11)
)

我仍然想保留日期和时间信息,以便以后与观察结果相关。注意“a”代表上午,“p”代表下午。

r dplyr lubridate posixct strptime
1个回答
0
投票

使用

dmy_hms
将 AM/PM 移至字符串末尾。

library(dplyr)
library(lubridate)

df %>% 
  mutate(Timestamp_new = dmy_hms(sub("( \\d{2})([ap])(.*$)", "\\1\\3 \\2m", Timestamp)),
         ms = format(Timestamp_new, "%OS3"))
  ID                  Timestamp CH       Timestamp_new     ms
1  1 26/09/24 11a:16:36.5933210 11 2024-09-26 11:16:36 36.593
2  1 26/09/24 11a:16:36.6518648 11 2024-09-26 11:16:36 36.651
3  1 26/09/24 11a:16:36.7280308 11 2024-09-26 11:16:36 36.728

请注意,您还可以将

as.POSIXct
"%d/%m/%y %I:%M:%OS3"

一起使用
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.