首先,我已阅读以下帖子(R: keep leading zero,and again,and this one,and this one或this one。)和我的帖子他们中的任何一个都没有回答这个问题。
我尝试在ID
列中添加前导零。该文件是从excel导入的,我不知道如何上传到这里。可能无法将过程复制到您。
当我使用以下任何代码添加前导零
时formatC(data$col,width=5,format="s",flag="0")
sprintf("%05s",data$col)
gsub('\\s','0',data$col)
所有这些都在字符串之前给了我一个空格,而不是零。 e.g。" 4097"
我还尝试减少任何空间trimws(sort$DlrNbr, which = c("both", "left", "right"))
,并重新尝试添加前导零,仍然失败。
你知道发生了什么吗?任何见解都有帮助!
答案 0 :(得分:3)
您在sprintf中使用了错误的格式。
使用sprintf('%05d', data$col)
应该做的伎俩(注意用于格式化整数的d
,而不是用于格式化字符串的s
。
您可以在帮助页面中找到更多详细信息:https://www.rdocumentation.org/packages/base/versions/3.4.3/topics/sprintf
答案 1 :(得分:1)
使用stringr
包:
library(stringr)
str_pad(data$col, 5, pad = "0")
答案 2 :(得分:0)
为什么不使用粘贴,即:
library(data.table)
data[, col := paste0('0', col)]