是否有一个R函数可以将随机字母序列识别为唯一序列?
我正在寻找一种识别不同字母序列并重新编码的方法 让我举例说明: 序列“ABABA”有两个唯一的字母“A”和“B”。我想用“2”重新编码这个序列。 第二个序列“BABAB”也有两个唯一的字母“A”和“B”,因此该序列也应重新编码为“2” 一旦你有了更多不同的字母,它就会变得很困难,因为你可以得到成千上万的组合。 “ABCDE”有5个独特的字母,应重新编码为“5”。 “FAEDC”还有5个独特的字母 所以,对于我来说,序列的顺序并不重要。我只想找出一个序列中有多少个唯一的字母,然后把这个5个字母的序列重新编码成一个数字是否有一个R函数可以将随机字母序列识别为唯一序列?,r,R,我正在寻找一种识别不同字母序列并重新编码的方法 让我举例说明: 序列“ABABA”有两个唯一的字母“A”和“B”。我想用“2”重新编码这个序列。 第二个序列“BABAB”也有两个唯一的字母“A”和“B”,因此该序列也应重新编码为“2” 一旦你有了更多不同的字母,它就会变得很困难,因为你可以得到成千上万的组合。 “ABCDE”有5个独特的字母,应重新编码为“5”。 “FAEDC”还有5个独特的字母 所以,对于我来说,序列的顺序并不重要。我只想找出一个序列中有多少个唯一的字母,然后把这个5个字母的序
帮点忙就好了!(很抱歉英语不好!)您可以拆分字符串并在
sapply中计算唯一的
v <- c("ABABA", "BABAB", "ABCDE", "FAEDC")
sapply(strsplit(v, ""), function(x) length(unique(x)))
# [1] 2 2 5 5
v您可以拆分字符串并在sapply
v <- c("ABABA", "BABAB", "ABCDE", "FAEDC")
sapply(strsplit(v, ""), function(x) length(unique(x)))
# [1] 2 2 5 5
v我没有找到内置函数,但您可能需要尝试:
count_unique_letters <- function(word) {
word_length <- nchar(word)
letters <- character(word_length)
for(i in 1:word_length) {
letters[i] <- substr(word, i, i)
}
return(length(unique(letters)))
}
count_unique_letters我没有找到内置函数,但您可能想试试:
count_unique_letters <- function(word) {
word_length <- nchar(word)
letters <- character(word_length)
for(i in 1:word_length) {
letters[i] <- substr(word, i, i)
}
return(length(unique(letters)))
}
count\u unique\u字母也许你在寻找unique
也许你在寻找unique
无需loop
只要length
和unique
就行了你是对的!事实上,@jay.sf提供了一个适当的解决方案。然而,我认为对于一个“R新手”来说,这个版本更容易阅读,不需要循环
只要长度
和独特
就行了。你是对的!事实上,@jay.sf提供了一个适当的解决方案。然而,我认为这个版本对于“R新手”来说更容易阅读