У меня есть объект, представляющий собой гигантскую матрицу с вектором, который содержит строку из трех букв, за которой следует число, например:
"aaa1" , "aaa2" , "aaa3" , "bbb1" ...
Я хотел бы переписать этот столбец, чтобы значения 1-9 содержали 01-09, например:
"aaa01" , "aaa02" , "aaa03" , "bbb01" ...
Есть ли способ сделать это эффективно?
Одно из решений, которое я придумал, состояло в том, чтобы отделить строку от числа, используя
a <- substr(object$column , 1 , 3)
а затем вставить строку с sprintf
как
paste(a ,rep(sprintf("%02d",1:50))
Есть ли более эффективный способ решить эту проблему?
Изменить: числа в моем образце могут превышать 10
paste0(gsub('\\d+', '', v1), sprintf('%02d', as.numeric(gsub('\\D+', '', v1))))
- person Sotos   schedule 23.01.2020