Как инициализировать data.frame с столбцом типа POSIXct?

Я могу инициализировать data.frame через

df <- data.frame(a=numeric(), b=character())

Но как определить столбец типа POSIXct?

df <- data.frame(a=numeric(), b=character(), c=POSIXct())

не будет работать.

Ответ 1

Ты можешь попробовать

df <- data.frame(a=numeric(), b=character(), c=as.POSIXct(character()))

Аналогично, вы можете создать столбец POSIXct NA в кадре данных с> 0 строками, создав новый столбец с as.POSIXct(NA).

Ответ 2

Дополнительная подсказка к предыдущей инициализации: если вы начинаете действия rbind() для добавления строк в этот пустой фрейм данных, вы можете столкнуться с ошибкой, подобной следующей, если вы будете следовать этому шаблону:

oneDF <- rbind(oneDF,twoDF,stringsAsFactors=FALSE)
Error in as.POSIXct.default(value) :
  do not know how to convert 'value' to class "POSIXct"

Наконец, я обнаружил, что удаление strAsAsFactors = FALSE разрешило значение POSIXct (как целое время, так и часовой пояс) для передачи в целевой DF.

oneDF <- rbind(oneDF,twoDF)

рассматривая результат:

unclass(oneDF$mytime)
[1] 1282089600
attr(,"tzone")
[1] "GMT"