reglas numeros notacion importancia forma fisica expresar exponencial ejercicios ejemplos convertir cientifica basicos r number-formatting options scientific-notation defaults

numeros - notacion cientifica reglas



¿Forzar R a no usar la notación exponencial(por ejemplo, e+10)? (4)

¿Puedo forzar a R a usar números regulares en lugar de usar la notación similar a e+10 ? Yo tengo:

1.810032e+09 # and 4

dentro del mismo vector y quiero ver:

1810032000 # and 4

Estoy creando resultados para un programa pasado de moda y tengo que escribir un archivo de texto usando cat . Eso funciona bien hasta el momento, pero simplemente no puedo usar la notación e+10 allí.


Esto es un poco un área 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. Una penalización que se aplicará al decidir imprimir valores numéricos en notación fija o exponencial. Sesgo de valores positivos hacia notación fija y negativa hacia notación científica: la notación fija será preferible a menos que sea más que dígitos ''scipen'' más amplios.

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 eso, todavía lo encuentro fudgeworthy. La forma más grave es usar sprintf() con ancho explícito.


Mi respuesta favorita:

format(1810032000, scientific = FALSE) # [1] "1810032000"

Esto le da lo que quiere sin tener que perder el tiempo en la configuración de R.

Tenga en cuenta que devuelve una cadena de caracteres en lugar de un objeto numérico


Ponga options(scipen = 999) en su archivo .Rprofile para que se auto-ejecute por defecto . (No confíe en hacerlo manualmente).

(Esto está diciendo algo diferente a otras respuestas: ¿cómo?

  1. Esto mantiene las cosas en su sano juicio cuando piensa entre múltiples proyectos, múltiples idiomas diariamente o mensualmente. Recordar escribir su configuración por proyecto es propenso a errores y no es escalable. Puede tener un ~ / .Rprofile global o por proyecto .Rprofile. O ambos, con el último anulando el primero.
  2. Manteniendo todas sus configuraciones en un proyecto global o .Rprofile lo autoejecuta. Esto es útil, por ejemplo, para cargas de paquete predeterminadas, configuración de data.table, entorno, etc. Nuevamente, esa configuración puede ejecutarse en una página de configuraciones, y no hay posibilidad de que recuerde esas y su sintaxis y las escriba en

Se puede lograr desactivando la notación científica en R.

options(scipen = 999)