使角色矢量的所有元素具有相同的长度

时间:2016-03-21 16:39:14

标签: r string

考虑一个字符向量

test <- c('ab12','cd3','ef','gh03')

我需要test的所有元素包含4个字符(nchar(test[i])==4)。如果元素的实际长度小于4,则剩余的位置应填充零。所以,结果应该是这样的

> 'ab12','cd30','ef00','gh03'

我的问题类似于this one。但是,我需要使用角色向量。

1 个答案:

答案 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()