Відповіді:
Ви можете спробувати або format, або prettyNum, але обидві функції повертають вектор символів. Я б використовував це лише для друку.
> prettyNum(12345.678,big.mark=",",scientific=FALSE)
[1] "12,345.68"
> format(12345.678,big.mark=",",scientific=FALSE)
[1] "12,345.68"
EDIT: Як каже Майкл Кіріко в коментарі:
Майте на увазі, що вони мають побічним ефектом заповнення друкованих рядків порожнім простором, наприклад:
> 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
, що дозволяє для точного контролю як Числові відображаються на графіках і діаграмах.