Należy pamiętać, że ich efekt uboczny polega na wypełnieniu drukowanych ciągów spacją, na przykład prettyNum(c(123,1234),big.mark=","):; daje " 123" "1,234". dodać trim=Tdo formatlub, preserve.width="none"aby prettyNumtemu zapobiec.
MichaelChirico
@MichaelChirico Dzięki za dodatkowe informacje. Dodałem to do odpowiedzi.
Joris Meys
Zauważ, że jeśli ustawisz również cyfry dla miejsc dziesiętnych, jeśli masz wektor, może to się nie udać, jeśli liczby są całkiem inne. Z pomocy „Wektory numeryczne są kodowane z minimalną liczbą miejsc dziesiętnych potrzebną do wyświetlenia wszystkich elementów do co najmniej cyfr znaczących. Jeśli jednak wszystkie elementy mają końcowe zera, liczba miejsc dziesiętnych jest zmniejszana do nsmall”
micstr
1
Więc 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ć.
micstr
Spędziłem trochę czasu próbując znaleźć, scientificco jest ukryte w stogu siana argumentów format. Dzięki!
Funkcja comma_format obsługuje tylko liczby całkowite.
Ven Yao
3
Jest to bardzo późno odpowiedzi, a to może być prawdą, że w przeszłości 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".
steveb
2
scales :: comma (1000000) wydaje się warte wspomnienia.
Joe
3
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.
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
doformat
lub,preserve.width="none"
abyprettyNum
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"
źródło
prettyNum(c(123,1234),big.mark=",")
:; daje" 123" "1,234"
. dodaćtrim=T
doformat
lub,preserve.width="none"
abyprettyNum
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ówformat
. Dzięki!Zobacz
?format
:> format(1e6, big.mark=",", scientific=FALSE) [1] "1,000,000" >
źródło
Inne odpowiedzi oczywiście działały - ale zawsze korzystałem
library(scales) comma_format()(1000000)
źródło
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 ładnieggplot2
, co pozwala na precyzyjną kontrolę, jak Liczby wyświetlane są na działkach i wykresów.źródło