0
変数kのようなデータフレームがあります。列all_possible_namesには、ILMNコードの識別子がさらに含まれています。 ここで、データフレーム識別子で使用可能な識別子の列all_possible_namesを検索します。R:データフレームを一致させてフィルタリングする
z <- matrix(c(0,0,1,1,0,0,1,1,0,0,0,0,1,0,1,1,0,1,1,1,1,0,0,0,"RND1 | AB849382 | uc001aeu.1","WDR | AB361738 | uc001aif.1", "PLAC8 | AB271612 | uc001amd.1","TYBSA | AB859482","GRA | AB758392 | uc001aph.1","TAF | AB142353"), nrow=6,
dimnames=list(c("ILMN_1651838","ILMN_1652371","ILMN_1652464","ILMN_1652952","ILMN_1653026","ILMN_1653103"),c("A","B","C","D","all_possible_names")))
k<-as.data.frame(z)
search<-c("AB361738","RND1", "LIS")
identifier <- as.data.frame(search)
結果は次のようでなければならない:
search Names
1 AB361738 WDR | AB361738 | uc001aif.1
2 RND1 RND1 | AB849382 | uc001aeu.1
3 LIS NA
このデータフレームを作成した後、最終的な出力を作成することができます。列名にはuc0で始まる命名のみを含める必要があります。
最終結果より次のようになります。
search Names
1 AB361738 uc001aif.1
2 RND1 uc001aeu.1
3 LIS NA
誰もこれで私を助けることができますか?あなたが唯一つの結果があることを確認しないかもしれないので、これは、リストとして結果を返します
firstStep<-lapply(srch, grep, k$all_possible_names, fixed=TRUE, value=TRUE)
res<-lapply(firstStep, function(subres){
prts<-unlist(strsplit(subres, " | ", fixed=TRUE))
prts[which(substr(prts, 1, 3)=="uc0")]
})
:
多くのおかげで、 Lisanne
ありがとうございます!それは私のために働く。 – Lisann