Кодирование целых чисел в R в вектор символов с базой 62

Какой быстрый способ закодировать целочисленные значения или числовые значения целых чисел в R в вектор символов в кодировке base 62, то есть в строку, содержащую только [a-zA-Z0-9]? Достаточно ли будет перевести ответ на этот вопрос?

Как быстро закодировать целочисленные значения или числовые целочисленные значения в R в вектор символов в кодировке base 62, то есть в строку, содержащую только [a-zA-Z0-9]? Достаточно ли будет перевести ответ на этот вопрос?

Как быстро закодировать целочисленные значения или числовые целочисленные значения в R в вектор символов в кодировке base 62, то есть в строку, содержащую только [a-zA-Z0-9]? Достаточно ли будет перевести ответ на этот вопрос? преобразование основания 10 в число 62 (a-zA-Z0-9)

Отредактировано

Вот мое решение:

toBase <- function(num, base=62) {
    bv <- c(seq(0,9),letters,LETTERS)
    r <- num %% base
    res <- bv[r+1]
    q <- floor(num/base)
    while (q > 0L) {
        r <- q %% base
        q  <- floor(q/base)
        res <- paste(bv[r+1],res,sep='')
    }
    res
} 
to10 <- function(num, base=62) {
    bv <- c(seq(0,9),letters,LETTERS)
    vb <- list()
    for (i in 1:length(bv)) vb[[bv[i]]] <- i
    num <- strsplit(num,'')[[1]]
    res <- vb[[num[1]]]-1
    if (length(num) > 1)
         for (i in 2:length(num)) res <- base * res + (vb[[num[i]]]-1)
    res
}

Здесь чего-нибудь не хватает?

5
задан Community 23 May 2017 в 11:47
поделиться