Skip to content

[R-es] Error en salida de lubridate::seconds_to_period() en Rmarkdown

4 messages · Carlos Ortega, Emilio L. Cano, Juan Abasolo

#
Buas y feliz año y decada nueva, compañeRos,

Me estoy encontrando con un problema tonto que no consigo resolver.

Explico, tengo un dato que necesito sacar en un documento con codigo on
line y no me saca el resultado de consola.

dato <- 2272.13

round(lubridate::seconds_to_period(seconds(dato))), 0)

En consola me da:
"37M 52S"

Pero en el documento

```Rmarkdown

+ Duración total `r round(lubridate::seconds_to_period(seconds(sum(dato))),
0)`

```

Me da:

   - *Duración total 52*

Lo de envolverlo en seconds() lo puse para ver si funciona, y no hay
cambio. Daría lo mismo seconds_to_period(dato), pero lo dejé para mostrar
que lo tomé en cuenta.

---
En realidad y de momento, es un solo dato que lo puedo copiar a mano, pero
la curiosidad mató al gato y a mí me pone nervioso

Que sigan bien
#
Hola,

Feliz Año!.
No sé porqué se produce, tiene pinta de bug.. pero puedes forzar a que la
salida sea como quieres así:


+ Duración total *`r sprintf('%2.0fM : %2.0fS',
round(minute(seconds_to_period(dato)),0),
round(second(seconds_to_period(dato)),0) )`*

Saludos,
Carlos Ortega
www.qualityexcellence.es

El vie., 3 ene. 2020 a las 8:20, Juan Abasolo (<juan.abasolo en ehu.eus>)
escribió:

  
    
#
Hola,

Creo que es porque los chunks ?en línea? realmente hacen ?cat? de la expresión que hay dentro. Entonces:
52 0

Si lo pasas a carácter en el chunk en línea creo que te saldrá bien:


+ Duración total `r as.character(round(lubridate::seconds_to_period(lubridate::seconds(sum(dato))), 0))`

O cualquier función que dé formato como texto, como ha sugerido Carlos.

Un saludo,

Emilio L. Cano
http://emilio.lcano.com

  
  
#
Muchas gracias, Carlos y Emilio!
Los dos modos lo resuelven.
Aprovecho también para aprender. Más no sea intentarlo.

Hau idatzi du Emilio L. Cano (emilopezcano en gmail.com) erabiltzaileak (2020
urt. 3, or. (09:31)):