我正在使用is.element来查找字符向量中的特定字母。我从一个看起来像这样的序列开始(DNA序列):
DNA="cagcatcggctgca"
然后我用以下方法拆分它:
DNA_split=strsplit(DNA,split="")
我得到了
[[1]]
[1] "c" "a" "g" "c" "a" "t" "c" "g" "g" "c" "t" "g" "c" "a"
然后我使用is.element函数
is.element("a",DNA_split)
我得到[1] FALSE
。
然而"a"
位于DNA_split
向量中。有谁知道我做错了什么?
答案 0 :(得分:1)
可能有几个答案:
> DNA_split
[[1]]
[1] "c" "a" "g" "c" "a" "t" "c" "g" "g" "c" "t" "g" "c" "a"
所以你的DNA_split
是一个列表,而不是一个向量:
> is.list(DNA_split)
[1] TRUE
您需要做的是选择要使用的向量is.element()
:
> is.element("a", DNA_split[[1]])
[1] TRUE
或:
is.element("a", unlist(DNA_split))
unlist(DNA_split)
和DNA_split[[1]]
都会返回一个向量:
[1] "c" "a" "g" "c" "a" "t" "c" "g" "g" "c" "t" "g" "c" "a"
答案 1 :(得分:0)
问题是strsplit
函数正在使DNA_split成为is.element
无法处理的列表。使用unlist
进行修复。
DNA <- "cagcatcggctgca"
DNA_split <- strsplit(DNA, split = "")
DNA_split <- unlist(DNA_split)
is.element("a", DNA_split)