2012-03-21 21 views
7

espero tener una simple pregunta para todos ustedes, pero trabajar con fechas en I ha sido una dificultad para míR- establecer una fecha única de múltiples columnas

Tengo una serie temporal de datos que tiene este aspecto

Month Day Year Hour Min Sec Data 
2  1 2012 1  0 0 56 
2  1 2012 1  1 0 57 
2  1 2012 1  2 0 52 
2  1 2012 1  3 0 55 
2  1 2012 1  4 0 57 

Mi esperanza es crear una fecha única a partir de las columnas múltiples y luego trazar la columna de datos por la fecha. Mi hopelessy código simplificada se vería así:

Date1<-c(Month,Day,Year,Hour,Min,Sec)# For when hourly data is important 
Date2<-c(Month,Day,Year) #For when daily data is important 
as.Date(Date1) 
as.Date(Date2) 
plot(Data~ Date1) 

Sé que no funciona, pero espero que pueda obtener el punto de de lo que estoy buscando lograr. ¿Alguna idea sobre cómo se podría hacer esto?

¡Gracias antes de tiempo!

Respuesta

11

desea que la función ISOdatetime():

R> mytimes <- ISOdatetime(2012,1,2,1,2,c(3.123,3.456,3.789),tz="UTC") 
R> mytimes 
[1] "2012-01-02 01:02:03.122 UTC" "2012-01-02 01:02:03.456 UTC" 
[3] "2012-01-02 01:02:03.789 UTC" 

Y estos son reales POSIXct objetos:

R> diff(mytimes) 
Time differences in secs 
[1] 0.333 0.333 
attr(,"tzone") 
[1] "UTC" 
R> 

he hecho mi vida más fácil aquí por el ejemplo y tenía sólo un argumento vectorizado. Sin embargo, con los datos en una variable mydf, por ejemplo, se podría hacer

mytimes <- with(mydf, ISOdatetime(Year, Month, Day, Hour, Min, Sec)) 

y usted debe ser establecido y listo para el trazado. También puede volver a asignar la columna mytimes al original data.frame.

+0

Gracias Dirk- you rock! Funciona de maravilla – Vinterwoo

Cuestiones relacionadas