Запятая для чисел в R?

Есть ли в R функция для отображения больших чисел, разделенных запятыми?

т.е. из1000000 в1,000,000.

 Nettle20 мар. 2018 г., 22:41
классический случай чего-то простого в Excel и нелепо сложного в R

Ответы на вопрос(3)

Увидеть?format:

> format(1e6, big.mark=",", scientific=FALSE)
[1] "1,000,000" 
>   
Решение Вопроса

но обе функции возвращают вектор символов. Я бы использовал это только для печати.

> 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"
 micstr10 дек. 2015 г., 12:44
Такformat(c(12345678,0.001234),big.mark=",", trim=TRUE, digits = 2, scientific = FALSE) дает "12 345 678,0000" "0,0012", так что достаточно видно. то есть форматирование мест не выполняется поэлементно. Поймал меня, поэтому хотел поделиться этим.
 Andy Terra28 февр. 2016 г., 16:06
Это действительно не работает для больших чисел.prettyNum(123123123.45, big.mark=",", scientific=FALSE) возвращается123,123,123 скорее, чем123,123,123.45
 MichaelChirico26 февр. 2016 г., 05:21
Потратил довольно много времени, пытаясь найтиscientific который скрыт в стоге сена аргументовformat, Спасибо!
 Joris Meys28 февр. 2016 г., 17:24
@ AndréTerra Так и есть. prettyNum (123123123.45, big.mark = ",", Scientific = FALSE, цифры = 11). чтение?prettyNum сказал бы вам, что по умолчанию число цифр для вещественного числа равно 4, но ширина поля, если не задано, равно цифрам + 1. Очевидно, что этого недостаточно для отображения десятичной части, поэтому вы должны установить ее вручную.
 Joris Meys22 мая 2015 г., 10:37
@MichaelChirico Спасибо за дополнительную информацию. Я добавил это к ответу.
 MichaelChirico21 мая 2015 г., 21:41
Имейте в виду, что у них есть побочный эффект заполнения печатных строк пробелом, например:prettyNum(c(123,1234),big.mark=","); дает" 123" "1,234", добавлятьtrim=T вformat или жеpreserve.width="none" вprettyNum чтобы предотвратить это.
 micstr10 дек. 2015 г., 12:36
Обратите внимание, если вы также задаете цифры для десятичных разрядов, если у вас есть вектор, он может пойти наперекосяк, если цифры совсем другие. Из справки «Числовые векторы кодируются с минимальным количеством десятичных разрядов, необходимым для отображения всех элементов, по крайней мере, до цифр, значащих цифр. Однако, если все элементы затем имеют конечные нули, количество десятичных знаков уменьшается до nsmall»

опубликованные, очевидно, работают - но я всегда использовал

library(scales)    
comma_format()(1000000)
 Ven Yao18 окт. 2015 г., 10:21
Функция comma_format может работать только с целыми числами.
 Joe26 сент. 2018 г., 19:48
шкалы :: запятая (1000000), кажется, стоит упомянуть.
 steveb20 мар. 2017 г., 19:50
Это очень запоздалый ответ, и в прошлом это могло быть правдой.comma_format не обрабатывал реальные числа, но теперь вы можете сделать следующее:scales::comma_format(digits = 12)(1000000.789) что приводит к следующему:"1,000,000.789".

Ваш ответ на вопрос