Rの新人として私を困惑させるために使用されていたものの1つは、数値を印刷用のパーセンテージとしてフォーマットする方法でした。
たとえば、と表示0.12345し12.345%ます。これにはいくつかの回避策がありますが、「新参者に優しい」とは思えません。例えば:
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%"
質問:これを行うためのベースR関数はありますか?または、便利なラッパーを提供する広く使用されているパッケージはありますか?
この中のようなものを探しにもかかわらず?format、?formatCそして?prettyNum、私はR.をベースに適切に便利なラッパーを見つけるには至っていない ??"percent"便利なものは得られませんでした。 library(sos); findFn("format percent")は1250ヒットを返します。そのため、やはり役に立ちません。 ggplot2には機能percentがありますが、丸めの精度を制御できません。
sprintfは、たまたまプログラマーでもあるRコーダーのサブセットには完全に問題ありません。私はCOBOL(shedder)やfortran(私の年齢を示します)を含め、私の人生の多くの部分をコーディングしました。しかし、私はsprintfフォーマット規則を明白とは考えていません(翻訳:WTF?)。そしてもちろん、専用のラッパーは、例えば、sprintfのより呼び出すことが容易でなければならない:format_percent(x=0.12345, digits=2)
sprintf()つまり、fooに含まれているパッケージを見つけるよりも、使い方の学習にほとんど時間がかかりませんformat_percent()。次に、ユーザーがパーセントとしてフォーマットしたくないが、他に似ているものがある場合はどうなりますか?彼らは別のラッパーを見つける必要があります。長期的には、基本ツールの学習は有益です。
%Rの「デフォルト」のレポート形式であるLaTeXのコメント文字というわずかな問題があります。そのため、グラフのラベル付けには役立ちますが、フォーマットされた数値をSwavedにする場合は注意が必要です。
sprintfメーリングリストのお気に入りの解決策のようです、そして私はこれ以上の解決策を見たことがありません。組み込み関数は、とにかく呼び出す方が簡単ではありませんよね?