考虑一个字符向量
test <- c('ab12','cd3','ef','gh03')
Run Code Online (Sandbox Code Playgroud)
我需要test包含4个字符(nchar(test[i])==4)的所有元素.如果元素的实际长度小于4,则剩余的位置应填充零.所以,结果应该是这样的
> 'ab12','cd30','ef00','gh03'
Run Code Online (Sandbox Code Playgroud)
我的问题与此类似.但是,我需要使用角色向量.
我们可以使用base R函数在字符串的末尾填充0以获得相等的字符数.将format与width指定为max的nchar(字符数)的vector给出了在端部(后空间作为输出format默认justify它right.然后,我们可以用"0"使用替换每个空间gsub.在该模式gsub是一个单一的空间(\\s并且替换是0.
gsub("\\s", "0", format(test, width=max(nchar(test))))
#[1] "ab12" "cd30" "ef00" "gh03"
Run Code Online (Sandbox Code Playgroud)
或者如果我们使用包解决方案,那么str_pad这样做更容易,因为它也有指定的参数pad.
library(stringr)
str_pad(test, max(nchar(test)), side="right", pad="0")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2099 次 |
| 最近记录: |