填充和减少字符

Padding and Reducing Characters

我是 R 的新手。我有一个数值向量,比方说 data <- c(1,3, 5, 10, 101)。我需要的是将每个元素都作为一个字符,将零添加到个位数,并且每个元素中的字符不超过两个。我正在使用以下代码:

pad <- str_pad(data, width = 2, side = "left", pad="0")  

但这仍然没有将“101”减少到“10”。有什么建议吗?

这与之前关于填充的线程不同,后者没有为我提供如何将“101”减少到“10”的答案

library(stringr)

data <- c(1,3, 5, 10, 101)
data <- as.character(data)
data <- strtrim(data, 2)
data <- str_pad(data, width = 2, side = "left", pad = "0")
data
# [1] "01" "03" "05" "10" "10"

我拆分了这些步骤,但您也可以轻松地嵌套其中的一些步骤。

这是一个函数,可以满足您的需求

str_pad = function(data){    
     data = ifelse(abs(data)<10,
                         paste("0", data,sep = ""),
                         ifelse(abs(data)>100,
                                substr(as.character(data),1,2),
                                as.character(data))) 
    return(data)
}