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

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

 1.810032e+09 # and 4 

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

 1810032000 # and 4 

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

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

‘scipen’: integer. Штраф, который должен применяться при принятии решения о печати числовых значений в фиксированной или экспоненциальной нотации. Позитивные значения смещаются в сторону фиксированных и отрицательных по отношению к научной нотации: фиксированная нотация будет предпочтительнее, если она не будет больше, чем цифры «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() с явной шириной.

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

 options(scipen = 999) 

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

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

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

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

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

(Это говорит что-то другое, чем другие ответы: как?

  1. Это сохраняет здравый смысл, когда вы думаете о нескольких проектах, на нескольких языках ежедневно или ежемесячно. Помнить, что вы вводите параметры вашего проекта, подвержены ошибкам и не масштабируемы. У вас может быть глобальный файл ~ / .Rprofile или per-project .Rprofile. Или и то, и другое с последним, перекрывающим первое.
  2. Сохраняя всю вашу конфигурацию в общесистемном или глобальном .Rprofile, автоматически выполняет ее. Это полезно, например, для загрузки пакетов по умолчанию, конфигурации data.table, среды и т. Д. Опять же, эта конфигурация может запускаться на странице настроек, и есть нулевой шанс, что вы запомните те и их синтаксис и введите их в
  • Как заполнить / создать экземпляр массива C # с одним значением?
  • Создание (и доступ) разреженной матрицы с записями NA по умолчанию
  • Как изменить каталог данных MySQL?
  • Объявление примитивов / объектов, значения инициализации по умолчанию
  • Конструкторы и наследование по умолчанию в Java
  • Почему компилятор не может вывести тип шаблона из аргументов по умолчанию?
  • Инициализация нормального массива с одним значением по умолчанию
  • Что означает «default» после объявления функции classа?
  • Значение по умолчанию для типа в Runtime
  • Существует ли разумный подход к параметрам типа «по умолчанию» в C # Generics?
  • Почему компилятор Scala запрещает перегруженные методы с аргументами по умолчанию?
  • Давайте будем гением компьютера.