我是R的新手。我有一个数字向量,让我们说data <- c(1,3, 5, 10, 101)
。我需要的是将每个元素作为一个字符,添加一个零到一个数字,并且每个元素中不要有两个以上的字符。我使用以下代码:
pad <- str_pad(data, width = 2, side = "left", pad="0")
但这仍然没有减少&#34; 101&#34;至&#34; 10&#34;。有什么建议吗?
这与早期的填充线程不同,后者没有为我提供如何减少&#34; 101&#34;到&#34; 10&#34;
答案 0 :(得分:2)
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"
我将步骤分开,但您也可以轻松地嵌套其中一些步骤。
答案 1 :(得分:0)
这是一个可以做你想要的功能
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)
}