Могу ли я заставить R использовать обычные числа вместо e+10
обозначения -подобного типа? У меня есть:
1.810032e+09
# and
4
в том же векторе и хотите увидеть:
1810032000
# and
4
Я создаю вывод для старомодной программы, и я должен написать текстовый файл, используя cat
. Пока это отлично работает, но я просто не могу использовать e+10
обозначения там.
r
number-formatting
options
scientific-notation
defaults
Мэтт Баннерт
источник
источник
Ответы:
Это немного серой области. Вы должны помнить, что R всегда будет вызывать метод печати, и эти методы печати прослушивают некоторые параметры. В том числе «scipen» - штраф за научный показ. От
help(options)
:Пример:
Тем не менее, я все еще нахожу это выдумкой. Самый прямой способ - использовать
sprintf()
с явной шириной, напримерsprintf("%.5f", ran2)
.источник
options("scipen"=0, "digits"=7)
(это значения по умолчанию)options("scipen"=100, "digits"=4)
в верхнюю часть кода, а тот, который не ниже этого ... с соответствующими примечаниями. Это может сбить с толку кого-то, кто ищет быстрое решение (и Google показывает первое как результат).Это может быть достигнуто путем отключения научной записи в R.
источник
Мой любимый ответ:
Это дает то, что вы хотите, без необходимости копаться в настройках R.
Обратите внимание, что он возвращает символьную строку, а не числовой объект
источник
justified = "none"
иначе будут пробелы, дополняющие их до одинаковой длины.format(1e6, scientific=FALSE)
возвращает"1000000"
времяas.character(1e6)
возвращает"1e+06"
, поэтому есть разница между двумя методами.Поместите
options(scipen = 999)
в свой файл .Rprofile чтобы он автоматически выполнялся по умолчанию . (Не полагайтесь на то, чтобы делать это вручную.)(Это говорит что-то отличное от других ответов: как?
источник