TL; DR: я хочу завершить каждую строку списка до заданного размера заданным символом слева. Я хочу это быстро. Смотрите код ниже и пример
У меня очень большой вектор строк, содержащий ... ну что угодно, но с максимальным (известным) количеством символов. Я хочу дополнить строки thoose левыми нулями до заданного размера (превосходящего максимальное количество символов)
предположим:
c("yop",NA,"1234567","19","12AN","PLOP","5689777")
Приведенный для примера объективный размер 10, я хочу:
[1] "0000000yop" NA "0001234567" "0000000019" "00000012AN" "000000PLOP" "0005689777"
в результате, как можно быстрее.
Я пытался написать свое, но это не очень быстро ... Не могли бы вы помочь мне сделать это быстрее? У меня есть миллиарды тисса для лечения.
Вот мой фактический код:
library(purrr)
zero_left <- function(field,nb){
map2_chr(
map(abs(nb-nchar(field)),~ rep("0",.x)),
field,
~ paste0(c(.x,.y),collapse=""))
}
trial <- c("yop","1234567","19","12AN","PLOP","5689777")
zero_left(trial,10)
Этот код даже не обрабатывает случай NA ... Но без него он работает, но слишком медленно.