文字列の名前付きリストがあります:
str(nr.genes)
Named chr [1:37] "0" "0" "Pipas_c034_0013" "Pipas_chr1-4_0040" ...
- attr(*, "names")= chr [1:37] "Nr11" "Nr12" "Nr131" "Nr132" ...
1 対 1 ではなく、次のオブジェクトの文字列名を文字列名に置き換えたい:
str(nr.genes.names)
chr [1:16] "up.p33-dw.p33" "up.p33-dw.p38" "up.p33-dw.p52" ...
私はこのようなものが欲しいです:
str(nr.genes)
Named chr [1:37] "0" "0" "Pipas_c034_0013" "Pipas_chr1-4_0040" ...
- attr(*, "names")= chr [1:37] "up.p33-dw.p33" "up.p33-dw.p38" "up.p33-dw.p52" "up.p33-dw.p52" ...
手動で変更した場所
"Nr11"<-"up.p33-dw.p33"
"Nr12"<-"up.p33-dw.p38"
"Nr131"<-"up.p33-dw.p52"
"Nr132"<-"up.p33-dw.p52" #Note that the third digit doesn't matter
.
.
.
最初の 2 桁に応じて、各文字列の名前を 2 番目の list の要素に置き換える必要があります。私はlapply関数を試しましたが、うまくいきませんでした.またsub
、置換を含む関数を作成しようとしましたが、何の変化も見られませんでした.以下のコードは次のとおりです.
lfun <- function(x,y) {
for(o in 1:16){ #Length of the names to substitue for
for (p in 1:4){
for (q in 1:4){
x[sub(paste("Nr", p, q, sep=""), x[o], replacement=y[o])]
}
}
}
}
この関数を使用して、最初の引数の属性のすべての名前を取得し、それが意味する要素に置き換えようとします。しかし、警告やエラーメッセージなしで以前と同じものを返します。それを行う簡単な方法があるに違いないと確信していますが、正しい方法が見つかりません
編集: nr.genes は次のように作成できます。
nr.genes <- c("0", "0", "Pipas_c034_0013", "Pipas_chr1-4_0040")
attr(nr.genes, "names") <-c("Nr11", "Nr12", "Nr131", "Nr132")
遺伝子。名前
nr.genes.names <- c("up.p33-dw.p33", "up.p33-dw.p38", "up.p33-dw.p52")
マッチングについては、それが必要ですNr11 <-"up.p33-dw.p33"
がNr21<-"<nr.genes.names[5]>"
、その後Nr22<-"<nr.genes.names[6]>",
、Nr23<-"<nr.genes.names[7]>"
Nr24<-""、その後Nr31 <-"<nr.genes.names[9]>"