Pregunta

¿Puedo obligar a R a usar números regulares en lugar de usar el e+10-El notación como? Tengo:

1.810032e+09
# and 
4

Dentro del mismo vector y quiero ver:

1810032000
# and
4

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

¿Fue útil?

Solución

Esta es una especie de á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. Valores positivos sesgo hacia fijo y negativo hacia la notación científica: se preferirá la notación fija 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 esto, todavía lo encuentro digno de dulce. La forma más directa es usar sprintf() con ancho explícito, por ejemplo sprintf("%.5f", ran2).

Otros consejos

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

options(scipen = 999)

Mi respuesta favorita:

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

Esto da lo que quieres sin tener que meterse en la configuración R.

Tenga en cuenta que devuelve una cadena de caracteres en lugar de un objeto número

Poner options(scipen = 999) en tus Archivo .rprofile Entonces se necesita automáticamente de forma predeterminada. (No confíe en hacerlo manualmente).

(Esto dice algo diferente a otras respuestas: ¿Cómo?

  1. Esto mantiene las cosas sanas cuando se aplica entre múltiples proyectos, múltiples idiomas a diario o mensualmente. Recordar escribir la configuración de su proyecto es propensa a errores y no escalable. Puede tener un global ~/.rprofile o por project .rprofile. O ambos, con el último anulando al primero.
  2. Manteniendo toda su configuración en un proyecto o global .Rprofile Auto-Executsla. Esto es útil para las cargas de paquete predeterminadas por ejemplo, datos de datos. Configuración de ttable, entorno, etc. Una vez más, esa configuración puede ejecutarse en una página de configuración, y hay cero posibilidades de que los recuerden esos y su sintaxis y escribalos en
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top