首页 > 解决方案 > 如何将多个字母连接成一个唯一的字符串?

问题描述

我已经检查了 stringr 包中的许多 R 函数,但我找不到正确的答案。我正在尝试将一个数字(例如 2211578)转换为一个字符串,其中每个字母由我的全局数字中每个位置的整数给出。例如,如果我的号码是 2211578,我将得到字符串“bbaaegh”。我已经尝试过了,它给了我正确的字母,但我无法将它们连接成一个字符串。

x <- 12384579
x.string <- str_c(letters[26 - as.numeric(strsplit(as.character(Reverse_number(x)), "")[[1]])])))

其中 Reverse_number 是以下函数:

Reverse_number <- function(x){ 
n <- trunc(log10(x)) # now many powers of 10 are we dealing with 
x.rem <- x # the remaining numbers to be reversed 
x.out <- 0 # stores the output 
for(i in n:0){
  x.out <- x.out + (x.rem %/% 10^i)*10^(n-i) # multiply and add 
  x.rem <- x.rem - (x.rem %/% 10^i)*10^i # multiply and subtract 
} 
return(x.out) 
}

提前致谢!

标签: r

解决方案


设置您的号码以进行转换

x <- 2211578

转换为字符向量并在每个字符上拆分

str <- strsplit(as.character(x),"")[[1]]

转换回整数并选择对应的字母

str <- letters[strtoi(str)]

粘贴以创建单个字符串。

str <- paste0(str,collapse = "")
str
# [1] "bbaaegh"

推荐阅读