r - 如何将多个字母连接成一个唯一的字符串?
问题描述
我已经检查了 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)
}
提前致谢!
解决方案
设置您的号码以进行转换
x <- 2211578
转换为字符向量并在每个字符上拆分
str <- strsplit(as.character(x),"")[[1]]
转换回整数并选择对应的字母
str <- letters[strtoi(str)]
粘贴以创建单个字符串。
str <- paste0(str,collapse = "")
str
# [1] "bbaaegh"
推荐阅读
- java - 纪事消费者没有正确阅读记录?
- nexus - 使用 helm 在 Kubernetes 集群中运行 nexus
- angular - Angular 2:再次加载组件,包括 templateUrl 和 styleUrls
- sql-server - 将 Logstash 连接到 SQL Server
- magento2 - Magento 2 Override Magento Checkout Model Cart updateItems 功能
- javascript - Node JS:只允许服务器端调用我的 api
- vba - VBA:根据单元格值将Excel行移动和删除到其他工作表
- networking - 接受与 UdpSocket 的连接时如何获取目标 IP?
- google-apps-script - 使用 Google Apps 脚本在电子邮件详细信息中看不到密件抄送标签
- android - 如何为 Android Api Level 19 及更高版本创建渐变?