次のコード
a <- seq(1,101,25)
b <- paste("name", 1:length(a), sep = "_")
この出力を生成します:
"name_1" "name_26" "name_51" "name_76" "name_101"
すべての値の幅を同じにしたいので、次のように値をゼロで埋めることができます。
"name_001" "name_026" "name_051" "name_076" "name_101"
どうすれば処理できますか?
(この質問は this one に関連しています。)
これにはいくつかの解決策があります。
それらの1つはsprintf
を使用することです。これは、文字列に埋め込まれたC
スタイルのフォーマットコードを使用して、それに渡される他の引数のフォーマットを示します。たとえば、フォーマットコード%3d
は、数値を幅3の整数としてフォーマットすることを意味します。
a <- seq(1,101,25)
sprintf("name_%03d", a)
[1] "name_001" "name_026" "name_051" "name_076" "name_101"
もう1つはformatC
とpaste
です。
paste("name", formatC(a, width=3, flag="0"), sep="_")
[1] "name_001" "name_026" "name_051" "name_076" "name_101"