Estoy leyendo una tabla y contiene cadenas que describen las marcas de tiempo. Sólo quiero convertir de cadena a un tipo de fecha y hora incorporada ...comprensión de fechas/horas (POSIXc y POSIXct) en 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")
si intento para almacenar la columna datetime en el hoja.de.datos, aparece un curioso error:
R> Q$ts <- ts
Error in `$<-.data.frame`(`*tmp*`, "ts", value = list(sec = c(0, 0, 0, :
replacement has 9 rows, data has 5
pero si voy a través de una representación numérica que tuvo lugar en el hoja.de.datos, funciona ...
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
cualquier ayuda en la comprensión de la situación?
Otra cosa interesante a destacar es que la longitud() de un objeto POSIXlt es siempre 9. Las longitudes de los componentes individuales, como $ min, aumenta para reflejar el número de marcas de tiempo dentro del objeto. – Sharpie
una cosa más interesante: utilicé el método de 'examinar' qué sucede con una 'POSIXlt' cuando le agrego un número y, de hecho, el resultado es un 'POSIXct'. esto explica lo que estaba observando en primera instancia. – mariotomo