У меня есть дата-рамка, в которой в одном столбце перечисляется множество дат. Как ни странно, тип данных для этого столбца является «целым числом». Мне нужно принудить столбец к правильному типу данных datetime, например POSIXct, чтобы я мог вычесть эти временные метки из тех, которые находятся в другом поле. Однако, когда я пытаюсь принудить эти значения datetime к POSIXct, они теряют компонент времени. Когда я пытаюсь выполнить математику по датам без предварительного принуждения к другому типу данных, R действует так, как будто временной компонент временной метки не существует (предполагается, что каждая дата имеет время полуночи). Что происходит и как я могу это исправить, чтобы R распознал метку времени?R не распознает компонент времени значений даты и времени
> dates[1]
[1] 2016-05-05T16:46:21-04:00
48 Levels: 2016-05-03T06:45:42-04:00 2016-05-03T06:45:43-04:00 ... 2016-05-05T16:50:00-04:00
> typeof(dates)
[1] "integer"
> as.POSIXct(dates[1])
[1] "2016-05-05 EDT"
> as.character(dates[1])
[1] "2016-05-05T16:46:21-04:00"
> as.POSIXct(as.character(dates[1]))
[1] "2016-05-05 EDT"
«48 уровней» - это намек на то, что R рассматривает его как факторы. Если вы использовали 'read.csv', то используйте' stringAsFactors = F' – rbm
У вас есть нестандартный формат даты и времени. R, вероятно, понадобится помощь 'as.POSIXct (" 2016-05-05T16: 46: 21-04: 00 ", format ="% Y-% m-% dT% H:% M:% S ")' –