如何用 1 和 0 填充宽度为 12?

问题描述 投票:0回答:2

我的数据看起来像:

df <- read.table(text = "col
921103
142106
12095769
11102
32456", header = TRUE)

我想要一个

1
zeroes
宽度为 12 的垫子:

col
100000921103
100000142106
100012095769
100000011102
100000032456

任何见解都有帮助!谢谢。

r string number-formatting
2个回答
1
投票

您可以将

sprintf
与模式
"1%011d"
一起使用,先得到 1,然后用 0 填充数字以匹配宽度 11。

df$col <- sprintf("1%011d", df$col)

df
#            col
# 1 100000921103
# 2 100000142106
# 3 100012095769
# 4 100000011102
# 5 100000032456

或与

paste0
+
str_pad
:

library(stringr)
df$col <- paste0('1', str_pad(df$col, width = 11, pad = "0"))

0
投票

尝试添加:

df$colnew <- df$col + 10^11
# df
#        col       colnew
# 1   921103 100000921103
# 2   142106 100000142106
# 3 12095769 100012095769
# 4    11102 100000011102
# 5    32456 100000032456

注意:如果我们添加 10^12,则会失败,为避免我们需要将列转换为字符串。

© www.soinside.com 2019 - 2024. All rights reserved.