Есть ли в R функция для отображения больших чисел, разделенных запятыми?
т.е. от 1000000
до 1,000,000
.
Ответы:
Вы можете попробовать формат или prettyNum, но обе функции возвращают вектор символов. Я бы использовал это только для печати.
> prettyNum(12345.678,big.mark=",",scientific=FALSE)
[1] "12,345.68"
> format(12345.678,big.mark=",",scientific=FALSE)
[1] "12,345.68"
РЕДАКТИРОВАТЬ: Как говорит Майкл Кирико в комментарии:
Имейте в виду, что они имеют побочный эффект заполнения напечатанных строк пустым пространством, например:
> prettyNum(c(123,1234),big.mark=",")
[1] " 123" "1,234"
Добавьте trim=TRUE
к format
или preserve.width="none"
к, prettyNum
чтобы предотвратить это:
> prettyNum(c(123,1234),big.mark=",", preserve.width="none")
[1] "123" "1,234"
> format(c(123,1234),big.mark=",", trim=TRUE)
[1] "123" "1,234"
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
:
> format(1e6, big.mark=",", scientific=FALSE)
[1] "1,000,000"
>
Другие опубликованные ответы, очевидно, работают, но я всегда использовал
library(scales)
comma_format()(1000000)
comma_format
не обрабатывать реальные цифры , но теперь вы можете сделать следующее: scales::comma_format(digits = 12)(1000000.789)
что приводит к следующему: "1,000,000.789"
.
Я думаю, что комментарий Джо к MatthewR предлагает лучший ответ, и его следует выделить:
По состоянию на сентябрь 2018 года scales
пакет (часть Tidyverse
) делает именно это:
> library(scales)
> x <- 10e5
> comma(x)
[1] "1,000,000"
scales
Пакет , кажется, играет очень хорошо с ggplot2
, что позволяет для точного контроля как Числовые отображаются на графиках и диаграммах.