You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中为数据补1和0至12位宽度?

解决方案

方法一:基础R原生函数实现

先将数值列转换为字符类型,再用sprintf函数完成格式化:

# 读取原始数据
df <- read.table(text = "col
921103
142106
12095769
11102
32456", header = TRUE)

# 转换为字符列,避免数值处理丢失格式
df$col <- as.character(df$col)
# 格式化:前导1 + 补0至11位的原内容,总长度12位
df$col <- sprintf("1%011s", df$col)

方法二:tidyverse风格(stringr包)

如果习惯使用tidyverse工具链,可以用stringr包的str_pad函数:

library(stringr)

# 读取原始数据
df <- read.table(text = "col
921103
142106
12095769
11102
32456", header = TRUE)

df$col <- df$col %>%
  as.character() %>%
  str_pad(width = 11, side = "left", pad = "0") %>% # 补0到11位
  paste0("1", .) # 拼接前导1

两种方法最终都会得到期望的12位格式结果:

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

内容的提问来源于stack exchange,提问作者Roq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 07:47:05