2012-01-17 19 views
6

Importación algunos datos de NOAA y tiene fechas y horas en columnas separadas. Busqué una forma elegante de agregar una sola columna de fecha y hora en mi marco de datos R, pero no pude. Encontré una pregunta de intercambio de pila sobre la inversa pero no esta. ¿Hay un simple comando de fecha y hora que podría ejecutar? Simplemente estoy usando read.table para un archivo de texto descargado e importa solo encontrarlo.Fechas y horas en columnas separadas, convertir a fecha y hora en R

datos de la boya está aquí: http://www.ndbc.noaa.gov/data/realtime2/51202.txt

>yr mo dy hr mn degT m.s m.s.1 m sec sec.1 degT.1 hPa degC degC.1 degC.2 nmi hPa.1 ft 
>2012 1 16 3 55 MM MM MM 1.4 10 7.2 339 MM MM 23.9 MM MM MM MM 
+0

Supongo que en la salida que 2012 es el año y el 1 al comienzo de la línea de datos es solo un identificador de muestra? –

+0

Gracias Gavin, sí, lo corregí. –

Respuesta

10

Puede utilizar ISOdatetime, que es sólo un envoltorio sencillo de as.POSIXct. Asegúrese de especificar el argumento sec como cero.

Data$timestamp <- with(Data, ISOdatetime(YY,MM,DD,hh,mm,0)) 
5

Sí, desea pegar las columnas de fecha y hora juntos y luego obligar a que la cadena completa de un objeto de fecha y hora.

dat <- within(dat, datetime <- as.POSIXlt(paste(yr, mo, dy, hr, mn), 
              format = "%Y %m %d %H %M")) 

suponiendo dat es el objeto que contiene los datos de boyas. Esto agrega una nueva columna que es un objeto de clase "POSIXlt" o puede usar as.POSIXct() si prefiere el otro formato.

O Después de examinar el archivo por lo que puede utilizar sus nombres de columna:

dat <- within(dat, datetime <- as.POSIXlt(paste(YY, MM, DD, hh, mm), 
              format = "%Y %m %d %H %M")) 
Cuestiones relacionadas