Esta é uma área um pouco cinzenta. Você precisa lembrar que R sempre chamará um método de impressão, e esses métodos de impressão escutam algumas opções. Incluindo 'scipen' - uma penalidade para exibição científica. De help(options)
:
'scipen': inteiro. Uma penalidade a ser aplicada ao decidir imprimir valores numéricos em notação fixa ou exponencial. Valores positivos enviesam-se para notação científica fixa e negativa para notação científica: a notação fixa será preferida, a menos que seja mais do que dígitos 'scipen' mais largos.
Exemplo:
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
Dito isto, ainda acho que vale a pena. A maneira mais direta é usar sprintf()
com largura explícita, por exemplo sprintf("%.5f", ran2)
.