Редактировать : Исходя из хорошего ответа Камиллы на ваш предыдущий вопрос, есть код для обработки импортированного текста в качестве отправной точки: https://stackoverflow.com/a/57964340/3460670
Я бы использовал функцию lubridate
parse_date_time
, который использует guess_formats
и может обрабатывать 2 или 4 цифры года (заменяя запятую на точку):
parse_date_time(gsub(",", ".", datetime), orders = c("dmY HMOS", "dmy HMOS"))
Вот как это выглядит в целом.Я добавил options(digits.secs=3)
, чтобы показывать десятичные разряды для секунд.
import_txt<-
"08.08.2019 23:43:42,356 : PRG_Signal_Ampel
08.08.2019 23:43:50,136 : MAIN
08.08.19 23:42:50,164 : T_SV_SharedMemRecs.Set
08.08.19 23:42:50,164 : T_SV_SharedMemRecs.Set
08.08.19 23:42:50,184 : data testing"
library(tidyr)
library(dplyr)
library(lubridate)
options(digits.secs=3)
txt <- readr::read_lines(import_txt)
data.frame(txt) %>%
separate(txt, into = c("datetime", "info"), sep = " : ") %>%
mutate(datetime = parse_date_time(gsub(",", ".", datetime), orders = c("dmY HMOS", "dmy HMOS"))) %>%
arrange(datetime)
datetime info
1 2019-08-08 23:42:50.164 T_SV_SharedMemRecs.Set
2 2019-08-08 23:42:50.164 T_SV_SharedMemRecs.Set
3 2019-08-08 23:42:50.184 data testing
4 2019-08-08 23:43:42.355 PRG_Signal_Ampel
5 2019-08-08 23:43:50.136 MAIN