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


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

1.810032e+09
# and 
4

в том же векторе и хотите увидеть:

1810032000
# and
4

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

4 165

4 ответа:

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

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

тем не менее, я все еще считаю его fudgeworthy. Самый страшный способ-использовать sprintf() с явными ширину.

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

options(scipen = 999)

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

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

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

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

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

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

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