viceversa una periodicos periodico pasar números numero mixto fracciones fraccion expresion ejercicios decimales convertir como r time decimal

una - Cómo convertir decimal a tiempo POSIX



convertir fracciones a decimales y viceversa (3)

Esto realmente depende de lo que quieras hacer con este "tiempo real" después de convertirlo, pero voy a operar asumiendo que solo quieres salida formateada de la función [suncalc] que estás utilizando para poder leerla.

Si solo desea mostrar la hora en formato de 24 horas / 12 horas como una cadena, puede agregar cualquiera de estos pares de líneas al final de su función [suncalc] justo antes de la declaración ''return'':

# Use these two lines for 24-hour format sunrise <- format(as.POSIXct(sunrise*3600, origin="2001-01-01", "GMT"), "%H:%M") sunset <- format(as.POSIXct(sunset*3600, origin="2001-01-01", "GMT"), "%H:%M") # Use these two lines for 12-hour format (AM/PM) sunrise <- format(as.POSIXct(sunrise*3600, origin="2001-01-01", "GMT"), "%I:%M %p") sunset <- format(as.POSIXct(sunset*3600, origin="2001-01-01", "GMT"), "%I:%M %p")

Utilizo una función desde aquí para calcular el amanecer y el ocaso y me devuelve:

sunrise sunset 6.49055593325792 18.2873900837081

Estoy luchando (intentando con strftime , POSIXct o as.Date ) para convertirlo a tiempo real, pero hasta ahora sin éxito.

Como siempre, cualquier sugerencia es muy apreciada.


La estrategia de @ Arun funciona, pero podría ser más fácil simplemente hacer:

x <- c(6.49055593325792, 18.2873900837081) today<-as.POSIXct(''2012-01-23 00:00:00 EST'') today + (3600*x) # "2012-01-23 06:29:26 EST" "2012-01-23 18:17:14 EST"

Eso te dará los segundos también.


Primero convierta la representación decimal en horas y minutos (si lo entiendo bien)

x <- c(6.49055593325792, 18.2873900837081) # if 6.49 equals 6.49 hours, then do this. x.m <- paste(floor(x), round((x-floor(x))*60), sep=":") > x.m # [1] "6:29" "18:17" > strptime(x.m, format="%H:%M") # [1] "2013-01-23 06:29:00" "2013-01-23 18:17:00"