2017-07-13 6 views
1

私はis.elementを使用して、特定の文字が文字ベクトル内にあることを確認しています。私はその後、ISを使用し文字のベクトルをチェックするRのis.element関数

[[1]] 
[1] "c" "a" "g" "c" "a" "t" "c" "g" "g" "c" "t" "g" "c" "a" 

を取得

DNA_split=strsplit(DNA,split="") 

を:私はこのようになりますシーケンス(DNA配列)で始まる:

DNA="cagcatcggctgca" 

し、私は使用して、それを分割します。要素機能

is.element("a",DNA_split) 

となります。

しかし、"a"DNA_splitベクターに含まれています。誰かが私が間違っていることを知っていますか?可能

+1

'%のDNA_splitにおける "" %[[1]]'または 'is.element( "A"、DNA_split [[1]])' 'またはDNA_splitを置き換える[[1]]' 'によってunlist(DNA_split) 'それはリストでベクターではないから –

答えて

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" 
0

問題はstrsplit機能がis.elementを扱うことができないリストを、DNA_split作っているということです。それを修正するにはunlistを使用してください。

DNA <- "cagcatcggctgca" 
DNA_split <- strsplit(DNA, split = "") 
DNA_split <- unlist(DNA_split) 
is.element("a", DNA_split) 
+0

非常に役に立つ2つの答え、ありがとう! –

関連する問題