Eskiden R'ye yeni gelen biri olarak beni şaşırtan şeylerden biri, bir sayının yazdırma için yüzde olarak nasıl biçimlendirileceğiydi.
Örneğin, görüntüler 0.12345
olarak 12.345%
. Bunun için birkaç çözümüm var, ancak bunların hiçbiri "yeni dostça" görünmüyor. Örneğin:
set.seed(1)
m <- runif(5)
paste(round(100*m, 2), "%", sep="")
[1] "26.55%" "37.21%" "57.29%" "90.82%" "20.17%"
sprintf("%1.2f%%", 100*m)
[1] "26.55%" "37.21%" "57.29%" "90.82%" "20.17%"
Soru: Bunu yapmak için temel bir R işlevi var mı? Alternatif olarak, kullanışlı bir ambalaj sağlayan ve yaygın olarak kullanılan bir paket var mı?
Bu in gibi bir şey ararken rağmen ?format
, ?formatC
ve ?prettyNum
ben R. tabanında uygun bir şekilde uygun sarmalayıcı bulmak için henüz ??"percent"
yararlı bir şey vermemiştir. library(sos); findFn("format percent")
1250 isabet döndürür - bu yüzden yine kullanışlı değildir. ggplot2
bir işleve sahiptir, percent
ancak bu, yuvarlama doğruluğu üzerinde hiçbir kontrol sağlamaz.
sprintf
, aynı zamanda programcılar da olan bu R kodlayıcıları alt kümesi için mükemmel. Hayatımda COBOL (titreme) ve fortran (yaşımı gösterir) dahil olmak üzere pek çok kod yazdım. Ancak sprintf
biçimlendirme kurallarının açık olduğunu düşünmüyorum (çeviri: WTF?). Ve elbette özel bir paketleyiciyi aramak sprintf'ten daha kolay olmalı, örneğin:format_percent(x=0.12345, digits=2)
sprintf()
paketinin içerdiğini bulmaktan daha fazla zaman alıcı değildir . Kullanıcı yüzde olarak biçimlendirmek istemezse ancak benzer başka bir şey olursa ne olur? Başka bir ambalaj bulmaları gerekiyor. Uzun vadede, temel araçları öğrenmek faydalı olacaktır. format_percent()
%
R için "varsayılan" raporlama formatı olan LaTeX'teki yorum karakterinde küçük bir sorun var. Bu nedenle, grafiklerin etiketlenmesi için yararlı olsa da, formatlanmış sayı Sweaved olacaksa dikkatli olunmalıdır.
sprintf
posta listelerinde favori çözüm gibi görünüyor ve daha iyi bir çözüm görmedim. Herhangi bir yerleşik işlevi aramak daha kolay olmayacak, değil mi?