В моей таблице данных есть столбец с «двусмысленным» форматом даты и времени: «12/1/2016 15:30». Как я могу преобразовать это datetime в формат R, распознаваемый в таблице данных без использования strptime()
и получение предупреждающего сообщения для первоначального преобразования в POSIXlt. Процесс работает, но предупреждение заставляет меня думать, что есть другой путь.Как преобразовать неоднозначный столбец datetime в data.table без использования strptime?
Мои данные таблицы:
my_dates <- c("12/1/2016 15:30", "12/1/2016 15:31", "12/1/2016 15:32")
this <- c("a", "b", "c")
that <- c(1, 2, 3)
my_table <- data.table(my_dates, this, that)
my_table
my_dates this that
1: 12/1/2016 15:30 1 a
2: 12/1/2016 15:31 2 b
3: 12/1/2016 15:32 3 c
my_table[, my_dates := as.POSIXct(strptime(my_dates, "%m/%d/%Y %H:%M"))]
Warning message:
In strptime(my_dates, "%m/%d/%Y %H:%M") :
POSIXlt column type detected and converted to POSIXct. We do not
recommend use of POSIXlt at all because it uses 40 bytes to store one date.
Таким образом, он работает, но я держал пари, что это метод, который я просто забываю, чтобы избежать этого предупреждения. Я использовал my_table[, dates:= as.POSIXct(dates)]
, но это уменьшает временную часть даты и времени. Я также пробовал my_table[, dates:= as.POSIXct(dates, "%m/%d/%Y %H:%M")]
, и время также отбрасывается, и предупреждения возвращаются.
Благодарим за совет.