Ketahuilah bahwa ini memiliki efek samping mengisi string yang dicetak dengan spasi kosong, misalnya prettyNum(c(123,1234),big.mark=","):; memberi " 123" "1,234". tambahkan trim=Tke formatatau preserve.width="none"untuk prettyNumuntuk mencegah hal ini.
MichaelChirico
@MichaelChirico Terima kasih atas informasi tambahan. Saya telah menambahkannya ke jawaban.
Joris Meys
Perhatikan jika Anda juga menyetel digit untuk tempat desimal, jika Anda memiliki vektor, ini bisa menjadi kacau jika nomornya sangat berbeda. Dari bantuan "Vektor numerik dikodekan dengan jumlah minimum tempat desimal yang diperlukan untuk menampilkan semua elemen hingga setidaknya digit digit signifikan. Namun, jika semua elemen memiliki nol di belakangnya, jumlah tempat desimal dikurangi hingga nsmall"
micstr
1
Jadi format(c(12345678,0.001234),big.mark=",", trim=TRUE, digits = 2, scientific = FALSE)berikan `" 12.345.678.0000 "" 0,0012 "jadi cukup bisa dilihat. yaitu pemformatan tempat tidak dilakukan berdasarkan elemen demi elemen. Menangkap saya begitu ingin berbagi ini.
micstr
Menghabiskan beberapa waktu untuk mencoba menemukan scientificyang tersembunyi di tumpukan jerami argumen format. Terima kasih!
Fungsi comma_format hanya dapat menangani integer.
Ven Yao
3
Ini adalah respon sangat terlambat, dan itu mungkin benar di masa lalu yang comma_formattidak menangani bilangan real tapi sekarang Anda dapat melakukan hal berikut: scales::comma_format(digits = 12)(1000000.789)yang hasil berikut ini: "1,000,000.789".
steveb
2
scale :: comma (1000000) sepertinya perlu disebutkan.
Joe
3
Saya pikir komentar Joe untuk MatthewR menawarkan jawaban terbaik dan harus disorot:
Mulai Sept 2018, scalespaket (bagian dari Tidyverse) melakukan persis seperti ini:
> library(scales)> x <-10e5> comma(x)[1]"1,000,000"
The scalespaket tampaknya bermain sangat baik dengan ggplot2, memungkinkan untuk kontrol yang baik bagaimana numeric ditampilkan dalam plot dan grafik.
Jawaban:
Anda dapat mencoba format atau prettyNum, tetapi kedua fungsi mengembalikan vektor karakter. Saya hanya akan menggunakannya untuk mencetak.
EDIT: Seperti yang dikatakan Michael Chirico di komentar:
Ketahuilah bahwa ini memiliki efek samping mengisi string yang dicetak dengan spasi kosong, misalnya:
Tambahkan
trim=TRUE
keformat
ataupreserve.width="none"
keprettyNum
untuk mencegah hal ini:sumber
prettyNum(c(123,1234),big.mark=",")
:; memberi" 123" "1,234"
. tambahkantrim=T
keformat
ataupreserve.width="none"
untukprettyNum
untuk mencegah hal ini.format(c(12345678,0.001234),big.mark=",", trim=TRUE, digits = 2, scientific = FALSE)
berikan `" 12.345.678.0000 "" 0,0012 "jadi cukup bisa dilihat. yaitu pemformatan tempat tidak dilakukan berdasarkan elemen demi elemen. Menangkap saya begitu ingin berbagi ini.scientific
yang tersembunyi di tumpukan jerami argumenformat
. Terima kasih!Lihat
?format
:sumber
Jawaban lain yang diposting jelas berfungsi - tetapi saya selalu menggunakan
sumber
comma_format
tidak menangani bilangan real tapi sekarang Anda dapat melakukan hal berikut:scales::comma_format(digits = 12)(1000000.789)
yang hasil berikut ini:"1,000,000.789"
.Saya pikir komentar Joe untuk MatthewR menawarkan jawaban terbaik dan harus disorot:
Mulai Sept 2018,
scales
paket (bagian dariTidyverse
) melakukan persis seperti ini:The
scales
paket tampaknya bermain sangat baik denganggplot2
, memungkinkan untuk kontrol yang baik bagaimana numeric ditampilkan dalam plot dan grafik.sumber