在 r 中从时间字符转换为时间数字变量



Tibble

你好!我正在尝试将 Start.time 变量从"4:00 PM"的字符格式更改为"4:00 PM",并取出 PM/AM 并将其保留为 4:00 作为数字变量(如果可能(。谢谢!

一种选择是使用str_remove匹配零个或多个空格 (\s*(,后跟字符串末尾的字母 'A', 'P', 'M' ($(

library(stringr)
library(dplyr)
df1 %>%
mutate(Start.time = str_remove(Start.time, "\s*[APM]+$"))

base R,这可以通过sub

df1$Start.time <- sub("\s*[APM]+$", "", df1$Start.time)

或与substr

trimws(substr(df1$Start.time, 1, 5))
gsub("\s*[APM]", "", start.time)

可用于将 HH:MM之后的字符串部分替换为空字符串,仅保留 HH:MM 位。

trimws(x)替换字符串x中的任何前导空格。

> start.time
[1] "4:00 PM"  "12:00 AM" " 4:00 AM"
> trimws(gsub("\s*[APM]", "", start.time))
[1] "4:00"  "12:00" "4:00"

最新更新