Имейте в виду, что они имеют побочный эффект заполнения напечатанных строк пробелом, например prettyNum(c(123,1234),big.mark=","):; дает " 123" "1,234". добавить trim=Tв formatили preserve.width="none"для prettyNumпредотвращения этого.
MichaelChirico
@MichaelChirico Спасибо за дополнительную информацию. Я добавил это к ответу.
Джорис Мейс
Обратите внимание, если вы также устанавливаете цифры для десятичных знаков, если у вас есть вектор, это может пойти наперекосяк, если числа будут совсем другими. Из справки «Числовые векторы кодируются с минимальным количеством десятичных знаков, необходимых для отображения всех элементов, по крайней мере, до значащих цифр. Однако, если все элементы затем имеют конечные нули, количество десятичных знаков уменьшается до nsmall»
micstr
1
Таким образом, format(c(12345678,0.001234),big.mark=",", trim=TRUE, digits = 2, scientific = FALSE)получается «12,345,678.0000» «0,0012», чтобы можно было увидеть достаточно. т.е. форматирование мест не выполняется поэлементно. Поймал меня так хотел этим поделиться.
micstr
Некоторое время потратил на то, чтобы найти то, scientificчто спрятано в стоге сена аргументов format. Спасибо!
Функция comma_format может работать только с целыми числами.
Вен Яо
3
Это очень поздно ответ, и это может быть правдой , что в прошлом comma_formatне обрабатывать реальные цифры , но теперь вы можете сделать следующее: scales::comma_format(digits = 12)(1000000.789)что приводит к следующему: "1,000,000.789".
Steveb
2
scale :: comma (1000000) заслуживает упоминания.
Джо
3
Я думаю, что комментарий Джо к MatthewR предлагает лучший ответ, и его следует выделить:
По состоянию на сентябрь 2018 года scalesпакет (часть Tidyverse) делает именно это:
> library(scales)> x <-10e5> comma(x)[1]"1,000,000"
scalesПакет , кажется, играет очень хорошо с ggplot2, что позволяет для точного контроля как Числовые отображаются на графиках и диаграммах.
Ответы:
Вы можете попробовать формат или prettyNum, но обе функции возвращают вектор символов. Я бы использовал это только для печати.
РЕДАКТИРОВАТЬ: Как говорит Майкл Кирико в комментарии:
Имейте в виду, что они имеют побочный эффект заполнения напечатанных строк пустым пространством, например:
Добавьте
trim=TRUE
кformat
илиpreserve.width="none"
к,prettyNum
чтобы предотвратить это:источник
prettyNum(c(123,1234),big.mark=",")
:; дает" 123" "1,234"
. добавитьtrim=T
вformat
илиpreserve.width="none"
дляprettyNum
предотвращения этого.format(c(12345678,0.001234),big.mark=",", trim=TRUE, digits = 2, scientific = FALSE)
получается «12,345,678.0000» «0,0012», чтобы можно было увидеть достаточно. т.е. форматирование мест не выполняется поэлементно. Поймал меня так хотел этим поделиться.scientific
что спрятано в стоге сена аргументовformat
. Спасибо!Смотрите
?format
:источник
Другие опубликованные ответы, очевидно, работают, но я всегда использовал
источник
comma_format
не обрабатывать реальные цифры , но теперь вы можете сделать следующее:scales::comma_format(digits = 12)(1000000.789)
что приводит к следующему:"1,000,000.789"
.Я думаю, что комментарий Джо к MatthewR предлагает лучший ответ, и его следует выделить:
По состоянию на сентябрь 2018 года
scales
пакет (частьTidyverse
) делает именно это:scales
Пакет , кажется, играет очень хорошо сggplot2
, что позволяет для точного контроля как Числовые отображаются на графиках и диаграммах.источник