结合毫秒值和日期以在 R 中创建 POSIX 友好格式

问题描述

我的问题是我必须组合两个字符串,一个最初格式化为 %H,%M,%s,另一个表示 ms

df = data.frame(hms = "14:39:12",ms = seq(999,1005,by = 0.65))

如何通过将 ms 转换为 S 并避免出现 ms 大于 1000 ms 的实例的问题,将其组合并转换为表示具有小时、分钟、秒、毫秒的标准时间格式

感谢您的帮助

解决方法

已解决将其转换为表示所需输出的字符串。

# Data frame
df = data.frame(hms = "14:39:12",ms = seq(999,1005,by = 0.65)) %>%
        tidyr::separate(.,col = hms,sep = ":",into = c("H","M","S")) %>%
        mutate_all(as.numeric) %>%
        mutate(S = ifelse(ms >= 1000,S+1,S)) %>%
        mutate(ms = ifelse(ms >= 1000,ms-1000,ms))

# Round values to include two points after decimal
df$ms = round(ret$ms,digits = 5)

# Recombine
df = paste(ret$H,ret$M,ret$S,ret$ms,sep = ":")

虽然这按照我需要的方式格式化数据,但我仍然需要检查 R 是否会将其识别为日期,以及是否可以在绘图时用作离散值。