Esta es un área un poco gris. Debe recordar que R siempre invocará un método de impresión, y estos métodos de impresión escuchan algunas opciones. Incluyendo 'scipen' - una penalización por exhibición científica. De help(options)
:
'scipen': entero. Se aplica una penalización al decidir imprimir valores numéricos en notación fija o exponencial. Sesgo de valores positivos hacia la notación fija y negativa hacia notación científica: se preferirá la notación fija a menos que sea más amplia que los dígitos de 'ciencia'.
Ejemplo:
R> ran2 <- c(1.810032e+09, 4)
R> options("scipen"=-100, "digits"=4)
R> ran2
[1] 1.81e+09 4.00e+00
R> options("scipen"=100, "digits"=4)
R> ran2
[1] 1810032000 4
Dicho esto, todavía lo encuentro fudgeable. La forma más directa es usar sprintf()
con ancho explícito, por ejemplo sprintf("%.5f", ran2)
.