xと呼ばれる文字列のベクターに一連のヌクレオチド配列があります。データフレーム出力を持つ配列のベクター内のモチーフのベクターを検索する
xにいくつかのモチーフがあるかどうかを確認したいと思います。私は行がXの配列であり、列がパターン/モチーフがベクトルsdseqsにあるデータフレームまたはテーブルを作成したいと思います。
sdframe <- data.frame
sdseqs = c("AGGAG.+ATG",
"AGAAG.+ATG","AAAGG.+ATG","GGAGG.+ATG","GAAGA.+ATG",
"GGAGA.+ATG","AAGGT.+ATG","AGGAA.+ATG","AAGGA.+ATG","GTGGA.+ATG")
for (i in 1:10) {
sdframe <- cbind(sdframe,(grepl(sdseqs[i], x)))
}
このコードはうまく動作しますが、データフレームの最初の列は疑問符で空になります。他の列には、trueとfalseが設定されています。これが私が望むものです。
私は最初にループの外側に空のデータフレームを定義しようとしました。私はRが新しく、Perlから来ています。これは私が通常Perlでしたことです:あなたは、変数をループの外側で使用するように定義します。私はこれをRでどうやって行うことができますか?
また、実行可能なオプションは、データフレームから最初の列を削除することですが、それはそれほど簡単ではありません。
何か助けていただければ幸いです。
出力は、私は今、私のコードを取得する:
sdframe
[1,] ? TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE
[2,] ? FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
[3,] ? FALSE FALSE TRUE FALSE TRUE FALSE TRUE TRUE TRUE TRUE
[4,] ? TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[5,] ? FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
[6,] ? FALSE FALSE FALSE TRUE FALSE FALSE FALSE TRUE FALSE TRUE
[7,] ? FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
[8,] ? FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE
[9,] ? FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[10,] ? FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
[11,] ? FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
私は同じですが、最初の列にせずにしたいですか?。私のxは11のシーケンスを持っていますが、私がチェックしたモチーフはカラムです(10カラム、最初に11を数える11)。
あなたは通常、R.、事前に構造を定義する必要はありませんあなたはXのシーケンスを提供することができますか?または加入コード? –
私は現時点でxの正確なシーケンスを提供することはできませんが、違いはありません。それらは、私がBiostrings関数readDNAStringSetを使ってベクトルxに組み込んだ1つの論文のシーケンスです。したがって、xは基本的にdna配列を持つベクトルです。 ループで、各列を既存のデータフレームに追加するためにcbindを使用するため、エラーが発生する前にデータフレームを定義しないとします。 – Diesel
あなたの出力サンプルに基づいて私のソリューションを更新 –