Carlos, muchas gracias, voy a probarlo. Pero me sigue intrigando por que no puedo ponerlo como elemento de un vector... Misterios del R. SI lo averiguo os lo digo. Jaume. El sáb., 15 feb. 2020 a las 19:08, Carlos Ortega (<cof en qualityexcellence.es>) escribió:> Hola, > > Una alternativa que te puede ayudar es enfocar el problema de esta otra > forma. > Puedes ir guardando tus vectores "original" en un data.frame y luego > convertirlo a fechas. > > Una vez tienes estas fechas, puedes hacer cálculos o extraer otras > variables. > > > > original<-c(2019,308,1700, 25) > > df <- data.frame( > + Year = original[1], > + DayNum = original[2], > + Hour = original[3] > + ) > > my_fecha <- strptime( paste(df$Year, df$DayNum, df$Hour, sep = ""), > "%Y%j%H" ) > > my_fecha > [1] "2019-11-04 17:00:00 CET" > > my_fecha <- strptime( paste(original[1], original[2], original[3], sep > ""), "%Y%j%H" ) > > my_fecha > [1] "2019-11-04 17:00:00 CET" > > Gracias, > Carlos Ortega > www.qualityexcellence.es > > > El sáb., 15 feb. 2020 a las 12:45, Jaume Tormo (<jautorbla en gmail.com>) > escribió: > >> Hola, >> >> Estoy encontrando un problema al intentar poner un objeto Dates en un >> vector o dataframe. >> Mi ejemplo >> # preliminares >> install.packages( lubridate ); library( lubridate ) >> v <- c(0, 0, 0) >> original<-c(2019,308,1700, 25) # c(año, día del año, hora, temperatura) >> esto sale así de un sensor de temperatura >> >> # convertimos los datos originales en algo que entienda R >> a <- years(original[1] ) >> d <- days(original[2]-1 ) # el -1 es un ajuste por como son los datos >> originales >> h <- hours( substr(original[3], 1, 2) ) >> fecha <- a+d+h # Conseguimos una fecha completa >> fecha.b <- as.Date(fecha, origin="0000-01-01" ) # convertimos la fecha >> en >> días del mes en lugar de días del año >> # mi problema >> # Si asigno fecha a un elemento de un vector me sale 0 >> v[2] <- fecha >> v[2] >> # Si asigno fecha.b a un elemento de un vector me da un error >> v[1] <- fecha.b >> Me da cosas parecidas si intento asignar un lugar en un dataframe, >> >> Entiendo que as.Date convierte la fecha en algo que tiene más de un >> elemento ¿Puede ser eso? Si es así ¿Cómo veo lo que hay dentro del objeto >> para sacar solo lo que me interese? >> >> Muchas gracias. >> >> -- >> Jaume Tormo. >> https://es.linkedin.com/in/jaumetormo >> https://acercad.wordpress.com/ >> >> [[alternative HTML version deleted]] >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es >-- Jaume Tormo. https://es.linkedin.com/in/jaumetormo https://acercad.wordpress.com/ [[alternative HTML version deleted]]
Estimado Jaume Tormo En lo personal yo utilizo un enfoque como el que comenta Carlos Ortega, se me ocurre que posiblemente funcione si a su código le coloca algo de formato, me refiero a esta forma: as.Date("10/21/2012", format = "%m/%d/%Y") Javier Rubén Marcuzzi El lun., 17 feb. 2020 a las 17:55, Jaume Tormo (<jautorbla en gmail.com>) escribió:> Carlos, muchas gracias, voy a probarlo. > Pero me sigue intrigando por que no puedo ponerlo como elemento de un > vector... Misterios del R. SI lo averiguo os lo digo. > > Jaume. > > El sáb., 15 feb. 2020 a las 19:08, Carlos Ortega (< > cof en qualityexcellence.es>) > escribió: > > > Hola, > > > > Una alternativa que te puede ayudar es enfocar el problema de esta otra > > forma. > > Puedes ir guardando tus vectores "original" en un data.frame y luego > > convertirlo a fechas. > > > > Una vez tienes estas fechas, puedes hacer cálculos o extraer otras > > variables. > > > > > > > original<-c(2019,308,1700, 25) > > > df <- data.frame( > > + Year = original[1], > > + DayNum = original[2], > > + Hour = original[3] > > + ) > > > my_fecha <- strptime( paste(df$Year, df$DayNum, df$Hour, sep = ""), > > "%Y%j%H" ) > > > my_fecha > > [1] "2019-11-04 17:00:00 CET" > > > my_fecha <- strptime( paste(original[1], original[2], original[3], sep > > > ""), "%Y%j%H" ) > > > my_fecha > > [1] "2019-11-04 17:00:00 CET" > > > > Gracias, > > Carlos Ortega > > www.qualityexcellence.es > > > > > > El sáb., 15 feb. 2020 a las 12:45, Jaume Tormo (<jautorbla en gmail.com>) > > escribió: > > > >> Hola, > >> > >> Estoy encontrando un problema al intentar poner un objeto Dates en un > >> vector o dataframe. > >> Mi ejemplo > >> # preliminares > >> install.packages( lubridate ); library( lubridate ) > >> v <- c(0, 0, 0) > >> original<-c(2019,308,1700, 25) # c(año, día del año, hora, > temperatura) > >> esto sale así de un sensor de temperatura > >> > >> # convertimos los datos originales en algo que entienda R > >> a <- years(original[1] ) > >> d <- days(original[2]-1 ) # el -1 es un ajuste por como son los datos > >> originales > >> h <- hours( substr(original[3], 1, 2) ) > >> fecha <- a+d+h # Conseguimos una fecha completa > >> fecha.b <- as.Date(fecha, origin="0000-01-01" ) # convertimos la fecha > >> en > >> días del mes en lugar de días del año > >> # mi problema > >> # Si asigno fecha a un elemento de un vector me sale 0 > >> v[2] <- fecha > >> v[2] > >> # Si asigno fecha.b a un elemento de un vector me da un error > >> v[1] <- fecha.b > >> Me da cosas parecidas si intento asignar un lugar en un dataframe, > >> > >> Entiendo que as.Date convierte la fecha en algo que tiene más de un > >> elemento ¿Puede ser eso? Si es así ¿Cómo veo lo que hay dentro del > objeto > >> para sacar solo lo que me interese? > >> > >> Muchas gracias. > >> > >> -- > >> Jaume Tormo. > >> https://es.linkedin.com/in/jaumetormo > >> https://acercad.wordpress.com/ > >> > >> [[alternative HTML version deleted]] > >> > >> _______________________________________________ > >> R-help-es mailing list > >> R-help-es en r-project.org > >> https://stat.ethz.ch/mailman/listinfo/r-help-es > >> > > > > > > -- > > Saludos, > > Carlos Ortega > > www.qualityexcellence.es > > > > > -- > Jaume Tormo. > https://es.linkedin.com/in/jaumetormo > https://acercad.wordpress.com/ > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Muchas gracias, Probaré eso también y ya os cuento. Jaume. El lun., 17 feb. 2020 a las 22:10, Javier Marcuzzi (< javier.ruben.marcuzzi en gmail.com>) escribió:> Estimado Jaume Tormo > > En lo personal yo utilizo un enfoque como el que comenta Carlos Ortega, se > me ocurre que posiblemente funcione si a su código le coloca algo de > formato, me refiero a esta forma: > > as.Date("10/21/2012", format = "%m/%d/%Y") > > Javier Rubén Marcuzzi > > El lun., 17 feb. 2020 a las 17:55, Jaume Tormo (<jautorbla en gmail.com>) > escribió: > >> Carlos, muchas gracias, voy a probarlo. >> Pero me sigue intrigando por que no puedo ponerlo como elemento de un >> vector... Misterios del R. SI lo averiguo os lo digo. >> >> Jaume. >> >> El sáb., 15 feb. 2020 a las 19:08, Carlos Ortega (< >> cof en qualityexcellence.es>) >> escribió: >> >> > Hola, >> > >> > Una alternativa que te puede ayudar es enfocar el problema de esta otra >> > forma. >> > Puedes ir guardando tus vectores "original" en un data.frame y luego >> > convertirlo a fechas. >> > >> > Una vez tienes estas fechas, puedes hacer cálculos o extraer otras >> > variables. >> > >> > >> > > original<-c(2019,308,1700, 25) >> > > df <- data.frame( >> > + Year = original[1], >> > + DayNum = original[2], >> > + Hour = original[3] >> > + ) >> > > my_fecha <- strptime( paste(df$Year, df$DayNum, df$Hour, sep = ""), >> > "%Y%j%H" ) >> > > my_fecha >> > [1] "2019-11-04 17:00:00 CET" >> > > my_fecha <- strptime( paste(original[1], original[2], original[3], >> sep >> > ""), "%Y%j%H" ) >> > > my_fecha >> > [1] "2019-11-04 17:00:00 CET" >> > >> > Gracias, >> > Carlos Ortega >> > www.qualityexcellence.es >> > >> > >> > El sáb., 15 feb. 2020 a las 12:45, Jaume Tormo (<jautorbla en gmail.com>) >> > escribió: >> > >> >> Hola, >> >> >> >> Estoy encontrando un problema al intentar poner un objeto Dates en un >> >> vector o dataframe. >> >> Mi ejemplo >> >> # preliminares >> >> install.packages( lubridate ); library( lubridate ) >> >> v <- c(0, 0, 0) >> >> original<-c(2019,308,1700, 25) # c(año, día del año, hora, >> temperatura) >> >> esto sale así de un sensor de temperatura >> >> >> >> # convertimos los datos originales en algo que entienda R >> >> a <- years(original[1] ) >> >> d <- days(original[2]-1 ) # el -1 es un ajuste por como son los datos >> >> originales >> >> h <- hours( substr(original[3], 1, 2) ) >> >> fecha <- a+d+h # Conseguimos una fecha completa >> >> fecha.b <- as.Date(fecha, origin="0000-01-01" ) # convertimos la >> fecha >> >> en >> >> días del mes en lugar de días del año >> >> # mi problema >> >> # Si asigno fecha a un elemento de un vector me sale 0 >> >> v[2] <- fecha >> >> v[2] >> >> # Si asigno fecha.b a un elemento de un vector me da un error >> >> v[1] <- fecha.b >> >> Me da cosas parecidas si intento asignar un lugar en un dataframe, >> >> >> >> Entiendo que as.Date convierte la fecha en algo que tiene más de un >> >> elemento ¿Puede ser eso? Si es así ¿Cómo veo lo que hay dentro del >> objeto >> >> para sacar solo lo que me interese? >> >> >> >> Muchas gracias. >> >> >> >> -- >> >> Jaume Tormo. >> >> https://es.linkedin.com/in/jaumetormo >> >> https://acercad.wordpress.com/ >> >> >> >> [[alternative HTML version deleted]] >> >> >> >> _______________________________________________ >> >> R-help-es mailing list >> >> R-help-es en r-project.org >> >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> >> > >> > >> > -- >> > Saludos, >> > Carlos Ortega >> > www.qualityexcellence.es >> > >> >> >> -- >> Jaume Tormo. >> https://es.linkedin.com/in/jaumetormo >> https://acercad.wordpress.com/ >> >> [[alternative HTML version deleted]] >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >-- Jaume Tormo. https://es.linkedin.com/in/jaumetormo https://acercad.wordpress.com/ [[alternative HTML version deleted]]