1

可能重复:
将数字格式化为固定宽度,前导零
sprintf 使用不带 gsub

这可能以前已经完成,但我找不到 R 的线程。

我将如何增加 R 中的前导零?

例如,有一个名为 x 的向量,其元素为:0001、0002、0003....9999

4

2 回答 2

1

使用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"
于 2012-10-24T04:36:48.373 回答
0

如果元素都是 4 位数字,那么正则表达式可以做到:

gsub("0(\\d{3})","1\\1",x)

更普遍:

gsub("^0(\\d*)$","1\\1",x)
于 2012-10-24T04:28:13.293 回答