titles plots font r lubridate

plots - text in r



¿Por qué 365 días son iguales a 80000 años? (2)

Usted malinterpreta el significado del argumento de las units . De la documentación,

unidades una cadena de caracteres que especifica el tipo de unidades a las que se refiere num .

donde num es el primer argumento. Asi que

duration(i1)

es equivalente a

duration(i1, units = "seconds")

Sin embargo,

duration(i1, units = "days")

significa que i1 se mide en days ; De ahí el número muy grande.

Tengo un interval lubridate y quería obtener el número de días como entero. Sin embargo obtengo los siguientes resultados intermedios extraños:

library("lubridate") i1 <- interval("2015-01-01 00:00:00", "2016-01-01 00:00:00") i1 <- interval(ymd_hms("2015-01-01 00:00:00"), ymd_hms("2016-01-01 00:00:00")) # Gives the same result duration(i1) # [1] "31536000s (~365 days)" duration(i1, units = "days") # [1] "2724710400000s (~86340.86 years)"

Aquí hay dos atajos de trabajo. Este último lanza un mensaje "intervalo de coacción a la duración" (Y no sé la razón de eso ...)

> as.numeric(as.duration(i1), units = "days") [1] 365 > as.numeric(i1, units = ''days'')

(R versión 3.3.0 con fecha 2016-05-03, lubridate versión 1.5.6.)


Según el mantenedor ,

[el uso de la duration en un objeto de interval ] debe ser deshabilitado. Para el uso de conversión as.duration .

Además, el error en el código anterior ahora se corrige al deshabilitar la llamada a la función:

> duration(i1) Error in .duration_from_num(num, units) : First argument to `duration` constructor must be character or numeric. Supplied object of class ''Interval'' > as.duration(i1) [1] "31536000s (~52.14 weeks)"