考虑一个字符向量
test <- c('ab12','cd3','ef','gh03')
我需要test
的所有元素包含4个字符(nchar(test[i])==4
)。如果元素的实际长度小于4,则剩余的位置应填充零。所以,结果应该是这样的
> 'ab12','cd30','ef00','gh03'
我的问题类似于this one。但是,我需要使用角色向量。
答案 0 :(得分:9)
我们可以使用base R
函数在字符串末尾填充0以获得相等的字符数。 format
width
max
指定为nchar
vector
(字符数),format
会在末尾给出一个带尾随空格的输出(justify
1}}默认right
它到gsub
。然后,我们可以使用gsub
用&#39; 0替换每个空格。\\s
中的模式是一个空格(0
),替换为gsub("\\s", "0", format(test, width=max(nchar(test))))
#[1] "ab12" "cd30" "ef00" "gh03"
。
str_pad
或者,如果我们使用的是包解决方案,那么pad
可以更轻松地执行此操作,因为它还具有指定library(stringr)
str_pad(test, max(nchar(test)), side="right", pad="0")
的参数。
serverRefresh()