Mam kolumnę "czasową" w r z zestawem wartości czasu charakteru w HH: MM: SS Jednak niektóre czasy nie mają sekund, co sprawia, że konwersja z Char do Chrona () niemożliwe

Przykład:

Biblioteka (Chron)

X <- c ("08:25:18", "08:25", "08:24:57", "08:24:47")

Chcę przekonwertować x do Chron (), ale bez sekund konwertuje tę wartość do N / A

Jak mogę dodać: 00 sekund na tylko te, które tego potrzebują? Dzięki

1
Michael Scott 27 lipiec 2020, 20:26

1 odpowiedź

Najlepsza odpowiedź

Możemy przekonwertować na czas, format go, a następnie zastosować times

library(chron)
library(lubridate)
out1 <- times(format(parse_date_time(x, c('HMS', 'HM')), "%H:%M:%S"))
str(out1)
#'times' num [1:4] 08:25:18 08:25:00 08:24:57 08:24:47
# - attr(*, "format")= chr "h:m:s"

Lub określ times w chron

chron(times = format(parse_date_time(x, c('HMS', 'HM')), "%H:%M:%S"))

Lub użyj as.ITime z data.table, który działałby

library(data.table)
as.ITime(x)
#[1] "08:25:18" "08:25:00" "08:24:57" "08:24:47"
2
akrun 27 lipiec 2020, 17:29