Преобразовать символ времени в числовую переменную времени в r - PullRequest
0 голосов
/ 20 сентября 2019

Tibble

Привет!Я пытаюсь изменить переменную Start.time из символьного формата «4:00 PM», вынуть PM / AM и оставить ее как 4:00 в качестве числовой переменной, если это возможно.Спасибо!

Ответы [ 2 ]

1 голос
/ 20 сентября 2019

gsub("\\s*[APM]", "", start.time) можно использовать для замены строковой части после ЧЧ: ММ пустой строкой, оставляя только бит ЧЧ: ММ.

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"
1 голос
/ 20 сентября 2019

Один из вариантов - использовать str_remove, чтобы найти ноль или более пробелов (\\s*), за которыми следуют буквы «A», «P», «M» в конце ($) строки * 1004.*

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))
...