У меня есть фрейм данных e, в котором есть столбец Дата. В исходном файле даты сохраняются как факторы. Поэтому я конвертирую их в строки символов. В этих строках они имеют формат День / Месяц / Год Час: Минута, например 27.05.2014 15:42. Затем я использую strptime для преобразования этих строк в объекты POSIXct.
e$Date = as.character(e$Date)
e$Date = strptime(e$Date, tz = "UTC", format = "%d/%m/%Y %H:%M")
Все выглядит хорошо в выводе, потому что даты теперь в форме "2014-05-27 15:42:00 UTC". Тем не мение. Когда я использую which (), чтобы найти даты после «2016-02-14 00:51:00 UTC», я получаю неправильные даты!
which(e$Date>"2016-02-14 00:51:00 UTC")
Команда возвращает список дат, которые начинаются с «2016-02-12 08:54:00 UTC», даже если после моей начальной точки есть несколько десятков дат, но до «2016-02-12 08:54: 00 UTC », которые не включены. Кажется, он сдвинут вперед на 8 или 9 часов.
Я знаю, что делаю что-то не так с часовыми поясами. Я увидел ответ на Подмножестве данных на основе даты и времени POSIXct, превышающих дату и время, используя dplyr , что, похоже, действительно близко к моей проблеме. Однако я указал часовой пояс в своей исходной команде strptime (я также пытался использовать as.POSIXct вместо strptime, и у меня возникла та же проблема).
Кто-нибудь может увидеть, что я делаю не так ???