Czy w R jest funkcja wyświetlająca duże liczby oddzielone przecinkami?
tj. od 1000000
do 1,000,000
.
Odpowiedzi:
Możesz wypróbować format lub prettyNum, ale obie funkcje zwracają wektor znaków. Użyłbym tego tylko do drukowania.
> prettyNum(12345.678,big.mark=",",scientific=FALSE)
[1] "12,345.68"
> format(12345.678,big.mark=",",scientific=FALSE)
[1] "12,345.68"
EDYCJA: Jak mówi Michael Chirico w komentarzu:
Należy pamiętać, że mają one efekt uboczny wypełniania drukowanych ciągów pustą przestrzenią, na przykład:
> prettyNum(c(123,1234),big.mark=",")
[1] " 123" "1,234"
Dodaj trim=TRUE
do format
lub, preserve.width="none"
aby prettyNum
temu zapobiec:
> 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=",")
:; daje " 123" "1,234"
. dodać trim=T
do format
lub, preserve.width="none"
aby prettyNum
temu zapobiec.
format(c(12345678,0.001234),big.mark=",", trim=TRUE, digits = 2, scientific = FALSE)
daje "12 345 678,0000" "0,0012", więc wystarczająco dużo można zobaczyć. tzn. formatowanie miejsc nie jest wykonywane element po elemencie. Złapał mnie, więc chciałem się tym podzielić.
scientific
co jest ukryte w stogu siana argumentów format
. Dzięki!
Zobacz ?format
:
> format(1e6, big.mark=",", scientific=FALSE)
[1] "1,000,000"
>
Inne odpowiedzi oczywiście działały - ale zawsze korzystałem
library(scales)
comma_format()(1000000)
comma_format
nie obsługiwać liczb rzeczywistych, ale teraz można wykonać następujące czynności: scales::comma_format(digits = 12)(1000000.789)
co skutkuje w następujących przypadkach: "1,000,000.789"
.
Myślę, że komentarz Joe do MatthewR stanowi najlepszą odpowiedź i powinien zostać podkreślony:
Od września 2018 r. scales
Pakiet (część Tidyverse
) robi dokładnie to:
> library(scales)
> x <- 10e5
> comma(x)
[1] "1,000,000"
scales
Pakiet wydaje się odgrywać bardzo ładnie ggplot2
, co pozwala na precyzyjną kontrolę, jak Liczby wyświetlane są na działkach i wykresów.