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, чтобы он автоматически выполнялся по умолчанию. (Не полагайтесь на это вручную.)
(Это говорит что-то отличное от других ответов: как?
- Это сохраняет разумность, когда вы переходите между несколькими проектами на нескольких языках ежедневно или ежемесячно. Не забывайте вводить настройки для каждого проекта, это подвержено ошибкам и не масштабируется. Вы можете иметь глобальный ~/.Rprofile или для каждого проекта .Rprofile. Или и то и другое, причем последнее перекрывает первое.
- Сохранение всех ваших настроек в проекте или глобальном .Rprofile автоматически выполняет его. Это полезно, например, для загрузка пакетов по умолчанию, конфигурация data.table, окружение и т.д. Опять же, эта конфигурация может работать на странице настроек, и нет шансов, что вы запомните их и их синтаксис и наберете их
Ответ 5
options(scipen=x)
где x - число десятичных знаков, которые вы хотите отобразить