Force R не использовать экспоненциальную нотацию (например, e + 10)?

Могу ли я заставить R использовать обычные цифры вместо использования e+10 -like нотации? Я имею:

1.810032e+09
# and 
4

в пределах одного и того же вектора и хотите увидеть:

1810032000
# and
4

Я создаю вывод для старомодной программы, и мне приходится писать текстовый файл с помощью cat. Пока все работает нормально, но я просто не могу использовать нотацию e+10.

Ответ 1

Это немного серой области. Вы должны помнить, что R всегда будет вызывать метод печати, и эти методы печати прослушивают некоторые параметры. В том числе "scipen" - штраф за научный показ. От help(options):

‘Scipen: целое число. Наказание, которое будет применяться при принятии решения о печати           числовые значения в фиксированной или экспоненциальной записи. положительный           смещение ценностей к фиксированному и негативное к научным           нотация: фиксированная нотация будет предпочтительнее, если она не более           чем ‘разбирать цифры шире.

Пример:

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

Тем не менее, я все еще нахожу это выдумкой. Самый прямой способ - использовать sprintf() с явной шириной, например, sprintf("%.5f", ran2).

Ответ 2

Это может быть достигнуто путем отключения научной нотации в R.

options(scipen = 999)

Ответ 3

Мой любимый ответ:

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

Это дает то, что вы хотите, без необходимости гадать в настройках R.

Обратите внимание, что он возвращает строку символов, а не числовой объект

Ответ 4

Поместите options(scipen = 999) в файл .Rprofile, чтобы он автоматически выполнялся по умолчанию. (Не полагайтесь на это вручную.)

(Это говорит что-то отличное от других ответов: как?

  1. Это сохраняет разумность, когда вы переходите между несколькими проектами на нескольких языках ежедневно или ежемесячно. Не забывайте вводить настройки для каждого проекта, это подвержено ошибкам и не масштабируется. Вы можете иметь глобальный ~/.Rprofile или для каждого проекта .Rprofile. Или и то и другое, причем последнее перекрывает первое.
  2. Сохранение всех ваших настроек в проекте или глобальном .Rprofile автоматически выполняет его. Это полезно, например, для загрузка пакетов по умолчанию, конфигурация data.table, окружение и т.д. Опять же, эта конфигурация может работать на странице настроек, и нет шансов, что вы запомните их и их синтаксис и наберете их

Ответ 5

options(scipen=x) где x - число десятичных знаков, которые вы хотите отобразить