将R中的整数编码为基本62个字符向量

将R中的整数值或数字整数值编码为基本62编码中的字符向量的快速方法是什么,即只包含[a-zA-Z0-9]的字符串?翻译这个问题的答案是否足够?
converting a number base 10 to base 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
}

这有什么遗漏吗?

这是一个使用[0-9A-Z]进行基础36的解决方案,可以使用[a-zA-Z0-9]轻松地适应基础62.是的,它基本上只是将解决方案翻译成您链接的其他问题.

https://github.com/graywh/r-gmisc/blob/master/R/baseConvert.R

相关文章
相关标签/搜索