Чтение файла CSV с использованием read.csv () без потери миллисекунд - PullRequest
1 голос
/ 19 марта 2020

У меня есть CSV-файл со столбцом метки времени. Метки времени имеют формат %Y-%m-%d %H:%M:%OS4, то есть значение в миллисекундах также состоит из 4 цифр Когда я читаю этот CSV, используя read.csv(), я не получаю миллисекунды, а только до секунд в символьном формате. Как я также могу прочитать миллисекунды?
Изменить, чтобы добавить, требуются данные и код:
mtc_data = read.csv(path/to/csv)
Notepad.pw ссылка на данные

1 Ответ

1 голос
/ 19 марта 2020

После прочтения с помощью 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"
...