重複の可能性:
number を固定幅としてフォーマットし、先頭にゼロを付けて
sprintf を gsub なしで使用する
これはおそらく以前に行われたことがありますが、R のスレッドが見つかりませんでした。
Rの先行ゼロをインクリメントするにはどうすればよいですか?
たとえば、0001、0002、0003....9999 という要素を持つ xというベクトルがあります。
重複の可能性:
number を固定幅としてフォーマットし、先頭にゼロを付けて
sprintf を gsub なしで使用する
これはおそらく以前に行われたことがありますが、R のスレッドが見つかりませんでした。
Rの先行ゼロをインクリメントするにはどうすればよいですか?
たとえば、0001、0002、0003....9999 という要素を持つ xというベクトルがあります。
使用sprintf
:
sprintf("%04s", as.character(1:20))
[1] "0001" "0002" "0003" "0004" "0005" "0006" "0007" "0008" "0009" "0010" "0011" "0012" "0013" "0014" "0015" "0016"
[17] "0017" "0018" "0019" "0020"
Windowsでは、成功を収めることができるというRhelpの投稿を見つけることができます。
head( sprintf("%04d", 1:999) )
[1] "0001" "0002" "0003" "0004" "0005" "0006"
要素がすべて 4 桁の場合、正規表現でそれを行うことができます。
gsub("0(\\d{3})","1\\1",x)
より一般的に:
gsub("^0(\\d*)$","1\\1",x)