¿Puedo forzar a R a usar números regulares en lugar de usar el e+10
notación similar? Yo tengo:
1.810032e+09
# and
4
dentro del mismo vector y quiero ver:
1810032000
# and
4
Estoy creando resultados para un programa antiguo y tengo que escribir un archivo de texto usando cat
. Eso funciona bien hasta ahora, pero simplemente no puedo usar la e+10
notación allí.
r
number-formatting
options
scientific-notation
defaults
Matt Bannert
fuente
fuente
Respuestas:
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)
:Ejemplo:
Dicho esto, todavía lo encuentro fudgeable. La forma más directa es usar
sprintf()
con ancho explícito, por ejemplosprintf("%.5f", ran2)
.fuente
options("scipen"=0, "digits"=7)
(esos son los valores predeterminados)options("scipen"=100, "digits"=4)
a la parte superior del código, y el que no está debajo de él ... con las notas correspondientes. Puede ser confuso para alguien que está buscando una solución rápida (y Google muestra la primera como resultado).Se puede lograr desactivando la notación científica en R.
fuente
Mi respuesta favorita:
Esto le da lo que quiere sin tener que molestar en la configuración de R.
Tenga en cuenta que devuelve una cadena de caracteres en lugar de un objeto numérico
fuente
justified = "none"
o de lo contrario habrá espacios rellenándolos con la misma longitud.format(1e6, scientific=FALSE)
regresa"1000000"
mientrasas.character(1e6)
regresa"1e+06"
, por lo que hay una diferencia entre los dos métodos.Ponga
options(scipen = 999)
su archivo .Rprofile para que se ejecute automáticamente por defecto . (No confíe en hacerlo manualmente).(Esto dice algo diferente a otras respuestas: ¿cómo?
fuente