После прочтения с помощью read.csv
(где вы можете использовать опцию stringsAsFactors=FALSE
) используйте as.POSIXct
со строкой формата, которая у вас уже есть. Миллисекунды хранятся внутри. Используя strftime
, вы можете отобразить милисекунды, тогда переменная больше не является "POSIXct"
форматом, а "character"
. Может быть более безопасно использовать trimws
, чтобы избавиться от лишних пробелов после прочтения.
dat <- read.csv("V:/R/_data/yourData.csv", stringsAsFactors=FALSE)
(x <- as.POSIXct(trimws(dat$timestamp), format="%Y-%m-%d %H:%M:%OS"))
# [1] "2018-11-20 00:00:00 CET" "2018-11-20 00:00:05 CET" "2018-11-20 00:00:07 CET"
x2 <- strftime(x, format="%Y-%m-%d %H:%M:%OS6")
x2
# [1] "2018-11-20 00:00:00.000000" "2018-11-20 00:00:05.058399" "2018-11-20 00:00:07.540699"