我的数据看起来像:
df <- read.table(text = "col
921103
142106
12095769
11102
32456", header = TRUE)
我想要一个
1
和 zeroes
宽度为 12 的垫子:
col
100000921103
100000142106
100012095769
100000011102
100000032456
任何见解都有帮助!谢谢。
您可以将
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"))
尝试添加:
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,则会失败,为避免我们需要将列转换为字符串。