Я читаю таблицу и содержит строки, которые описывают временные метки. Я просто хочу, чтобы преобразовать из строки в встроенного типа даты и времени ...понимание дат/времени (POSIXc и POSIXct) в R
R> Q <- read.table(textConnection('
tsstring
1 "2009-09-30 10:00:00"
2 "2009-09-30 10:15:00"
3 "2009-09-30 10:35:00"
4 "2009-09-30 10:45:00"
5 "2009-09-30 11:00:00"
'), as.is=TRUE, header=TRUE)
R> ts <- strptime(Q$tsstring, "%Y-%m-%d %H:%M:%S", tz="UTC")
если я пытаюсь сохранить столбец DATETIME в data.frame, я получаю любопытное сообщение об ошибке:
R> Q$ts <- ts
Error in `$<-.data.frame`(`*tmp*`, "ts", value = list(sec = c(0, 0, 0, :
replacement has 9 rows, data has 5
, но если я иду через числовое представление проходит в data.frame, это работает ...
R> EPOCH <- strptime("1970-01-01 00:00:00", "%Y-%m-%d %H:%M:%S", tz="UTC")
R> Q$minutes <- as.numeric(difftime(ts, EPOCH, tz="UTC"), units="mins")
R> Q$ts <- EPOCH + 60*Q$minutes
любая помощь в понимании ситуации?
Еще одна интересная вещь, чтобы отметить, что длина() объекта POSIXlt это всегда 9. Длина отдельных компонентов, таких как $ min, увеличивается, чтобы отражать количество временных меток внутри объекта. – Sharpie
еще одна интересная вещь: я использовал функцию «подключить», чтобы проверить, что происходит с «POSIXlt», когда я добавляю в нее число, и на самом деле результатом является «POSIXct». это объясняет, что я наблюдал в первом случае. – mariotomo