Czy w R jest funkcja wyświetlająca duże liczby oddzielone przecinkami?
tj. od 1000000do 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=TRUEdo formatlub, preserve.width="none"aby prettyNumtemu 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=Tdo formatlub, preserve.width="none"aby prettyNumtemu 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ć.
scientificco 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_formatnie 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. scalesPakiet (część Tidyverse) robi dokładnie to:
> library(scales)
> x <- 10e5
> comma(x)
[1] "1,000,000"
scalesPakiet wydaje się odgrywać bardzo ładnie ggplot2, co pozwala na precyzyjną kontrolę, jak Liczby wyświetlane są na działkach i wykresów.