1. ホーム
  2. r

[解決済み] 固定幅で先頭のゼロを含む数値のフォーマット【重複

2022-05-06 14:38:11

質問

次のコード

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"

どうすればいいんだ?

<サブ (この質問は これ .)

解決方法は?

これには、いくつかの解決策があります。

そのうちの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"

もう一つは formatCpaste :

paste("name", formatC(a, width=3, flag="0"), sep="_")
[1] "name_001" "name_026" "name_051" "name_076" "name_101"