【发布时间】:2021-11-21 00:41:14
【问题描述】:
我有一个向量mynumbers,上面有几串数字,比如说:
mynumbers <- c("122212", "134134", "134134", "142123", "212141", "213243", "213422", "214231", "221233")
我的目标是按照这些关系将这些字符串翻译成字母字符串:
1=A
2=C
3=G
4=T
我想把它封装在一个函数中,这样:
myletters <- translate_function(mynumbers)
myletters 因此将是:
myletters <- c("ACCCAC", "AGTAGT", "AGTAGT", "ATCACG", "CACATA", "CAGCTG", "CAGTCC", "CATCGA", "CCACGG")
我正在考虑这样的函数,显然不正确...在处理strsplit 和列表时我开始感到困惑...
translate_function <- function(numbers){
map_df <- data.frame(num=1:4, nuc=c('A','C','G','T'))
#strsplit numbers
split_numbers <- strsplit(numbers, '')
letters <- paste(sapply(split_numbers, function(x) map_df$nuc[which(map_df$num==x)]), collapse='')
return(letters)
}
实现此目的最简单、最优雅的方法是什么?谢谢!
【问题讨论】:
标签: r string function translate