R如何添加前导零而不是空白

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

首先,我已经阅读了以下帖子(R: keep leading zeroand againand this oneand this onethis one。),我的问题没有得到任何回答。

我尝试在ID列中添加一个前导零。该文件是从excel导入的,我不知道如何上传到这里。可能无法将过程复制到您。

当我使用以下任何代码添加前导零

formatC(data$col,width=5,format="s",flag="0")
sprintf("%05s",data$col)
gsub('\\s','0',data$col)

所有这些都在字符串之前给了我一个空格,而不是零。 e.g." 4097"

我也尝试削减任何spacetrimws(sort$DlrNbr, which = c("both", "left", "right")),并重新尝试添加前导零,仍然失败。

你知道发生了什么吗?任何见解都有帮助!

r whitespace leading-zero
3个回答
3
投票

您使用了错误的sprintf格式。

使用sprintf('%05d', data$col)应该做的伎俩(注意用于格式化整数的d,而不是用于格式化字符串的s)。

您可以在帮助页面中找到更多详细信息:https://www.rdocumentation.org/packages/base/versions/3.4.3/topics/sprintf


1
投票

使用stringr包:

library(stringr)
str_pad(data$col, 5, pad = "0")

0
投票

为什么不使用糊剂,即:

library(data.table)
data[, col := paste0('0', col)]
© www.soinside.com 2019 - 2024. All rights reserved.