Pregunta

Tengo lo que puede ser una pregunta muy simple. Quiero procesar una columna de objetos POSIXct de una trama de datos y generar un vector de cadenas de fecha y hora. He intentado utilizar la siguiente llamada sapply

dt <- sapply(df$datetime, function(x) format(x,"%Y-%m-%dT%H:%M:%S"))

pero en vano. Sigo recibiendo el siguiente error:

> Error in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L,  :
invalid 'trim' argument

Cuando aplico esta función a un único objeto POSIXct de la columna, no tengo ningún problema. Así que estoy confundido por el momento acerca de lo que es el problema. ¿Necesito hacer algo especial con objetos POSIXct?

¿Fue útil?

Solución

format() tomará un vector argumento, por lo format(df$datetime,"%Y-%m-%dT%H:%M:%S") debe hacer lo que necesita.

Cuando se utiliza sapply, sus objetos son obligados a numérico, y así se invoca el método de formato incorrecto. Se podría obligarlos a volver a POSIXct utilizando sapply(df$datetime, function(x) format(as.POSIXct(x, origin="1970-01-01"),"%Y-%m-%dT%H:%M:%S")), pero a menos que tenga una razón especial para usar apply, sólo tiene que utilizar el método anterior

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top