R 如何添加前导零而不是白色 space
R how add leading zero instead of white space
首先,我已经阅读了以下帖子(R: keep leading zero, and again, and this one, and this one, or this one),但我的问题没有任何人回答。
我尝试在 ID
列中添加前导零。文件是从excel导入的,不知道怎么上传到这里。可能无法将过程复制给您。
当我使用以下任何代码添加前导零时
formatC(data$col,width=5,format="s",flag="0")
sprintf("%05s",data$col)
gsub('\s','0',data$col)
他们都在字符串前给了我一个白色space,而不是一个零。例如" 4097"
我也尝试 trim 向下任何 spacetrimws(sort$DlrNbr, which = c("both", "left", "right"))
,然后重新尝试添加前导零,仍然失败。
你知道发生了什么事吗?任何见解都是有帮助的!
为什么不直接使用粘贴,即:
library(data.table)
data[, col := paste0('0', col)]
你使用了错误的 sprintf 格式。
使用 sprintf('%05d', data$col)
应该可以解决问题(注意用于格式化整数的 d
,而不是用于格式化字符串的 s
。
您可以在帮助页面中找到更多详细信息:https://www.rdocumentation.org/packages/base/versions/3.4.3/topics/sprintf
使用 stringr
包:
library(stringr)
str_pad(data$col, 5, pad = "0")
首先,我已经阅读了以下帖子(R: keep leading zero, and again, and this one, and this one, or this one),但我的问题没有任何人回答。
我尝试在 ID
列中添加前导零。文件是从excel导入的,不知道怎么上传到这里。可能无法将过程复制给您。
当我使用以下任何代码添加前导零时
formatC(data$col,width=5,format="s",flag="0")
sprintf("%05s",data$col)
gsub('\s','0',data$col)
他们都在字符串前给了我一个白色space,而不是一个零。例如" 4097"
我也尝试 trim 向下任何 spacetrimws(sort$DlrNbr, which = c("both", "left", "right"))
,然后重新尝试添加前导零,仍然失败。
你知道发生了什么事吗?任何见解都是有帮助的!
为什么不直接使用粘贴,即:
library(data.table)
data[, col := paste0('0', col)]
你使用了错误的 sprintf 格式。
使用 sprintf('%05d', data$col)
应该可以解决问题(注意用于格式化整数的 d
,而不是用于格式化字符串的 s
。
您可以在帮助页面中找到更多详细信息:https://www.rdocumentation.org/packages/base/versions/3.4.3/topics/sprintf
使用 stringr
包:
library(stringr)
str_pad(data$col, 5, pad = "0")