dplyr :: изменить временную метку - PullRequest
1 голос
/ 11 июня 2019

У меня есть доступ для чтения данных из базы данных с испорченным часовым поясом на их даты. По нескольким причинам это не может быть исправлено на стороне базы данных, и у меня нет даже прав на это.

Я создал обходной путь в R, который хорошо работает в том смысле, что мой код преобразовывает время в правильное время. Единственная проблема заключается в том, что это может быть немного медленным, если я загружаю много данных - например, строки в 1 миллион или больше, а код ничего особенного.

Данные в основном выглядят так, в них нет особого упоминания. Просто обычные данные хранятся в дБ и дате.

df <- read.table(text="
 id    date
 1     2013-01-25 10:11:21
 2     2013-02-21 13:10:00
", header=TRUE)

Мой код

fix_timezone <-
 mutate(
  fixed = as.POSIXct(as.character(date), tz = "UTC"),
  date = as.POSIXct(format(as.POSIXct(fixed ), tz="Europe/Berlin"))
)

Если я использую только часовой пояс UTC, он загружает некоторые данные за +1 час. Но не все из-за смены летнего времени. Ребята, вы знаете, как улучшить скорость моего кода и, возможно, как сделать его красивее?

...