Суть аргумента такова:
Функция, которую я написал, учитывает один аргумент, буквенно-цифровую строку и выводит строку, в которой значения каждого элемента этой буквенно-цифровой строки переключаются для некоторого "сопоставления". MRE следующим образом:
#This is the original and switches value map
map = data.table(mapped = c(0:35), original = c(0:9,LETTERS))
#the function that I'm using:
as_numbers <- function(string) {
#split string unlisted
vector_unlisted <- unlist(strsplit(string,""))
#match the string in vector
for (i in 1:length(vector_unlisted)) {
vector_unlisted[i] <- subset(map, map$original==vector_unlisted[i])[[1]][1]
}
vector_unlisted <- paste0(vector_unlisted, collapse = "")
return(vector_unlisted)
}
Я пытаюсь отойти от for loop
для чего-то, что повышает производительность, поскольку функция работает, но она довольно медленная для количества элементов, которые я предоставил в этой форме:
unlist(lapply(dat$alphanum, function(x) as_numbers(x)))
Пример входных строк: 549300JV8KEETQJYUG13
. Это должно привести к строке типа 5493001931820141429261934301613
Поставка только одной строки в этом случае:
> as_numbers("549300JV8KEETQJYUG13")
[1] "5493001931820141429261934301613"