私はこのようになりますベクトルを持っているが、gene_listそれを呼び出すことができます:Rの別のベクトルに一致する値が存在する場合、ベクトルの値を置き換えるにはどうすればよいですか?
hgnc_symbol ensembl_gene_id
Length:32057 Length:32057
Class :character Class :character
Mode :character Mode :character
T1のヘッドは次のようになります:
"ENSMPUG00000000002" "ENSMPUG00000000003" "ENSMPUG00000000004"
"ENSMPUG00000000005" "ENSMPUG00000000006" "ENSMPUG00000000007"
....
32057 items.
私も次のように持って、それがT1呼び出すことができます
hgnc_symbol ensembl_gene_id
1 ENSMPUG00000000002
2 ENSMPUG00000000003
3 ENSMPUG00000000004
4 ENSMPUG00000000005
5 ENSMPUG00000000006
6 MAP2K3 ENSMPUG00000000007
....
私がしたいことは、t1の2番目の列に一致するものが見つかった場合、最初のベクトルの項目を置き換えることです。 hgnc_symbol列の多くの場合は空であることに注意してください。私は2番目の列に一致が見つかったときに置換したいだけで、最初の値に値が存在します。
だから、いくつかのR擬似コードでは、多分何か
if t1$ensemble_gene_id[i] %in% gene_list
gene_list[i] = hgnc_symbol[i].
または
gene_list = gene_list[which(gene_list == t1$ensemble_gene_id)]
私はちょうど私が達成したいものを伝えようと、これらが正しくないことを知っているような。私はこれを手の平のようなやり方で成し遂げることができると知っていますが、私はまた、1行か2行でこれを行う簡単なRスタイルの方法があり、自分のRスタイルを調整しようとしていると確信しています。私は入力を感謝します。ありがとう。
どうもありがとうございました。 !is.naの部分を[gene_list] == ""を検索するように変更しなければなりませんでしたが、そうでなければこれは素晴らしいことです。私はちょうど入れ子になったforループを試していた、笑、ひどくなった。この返答をありがとう、それは素晴らしい仕事です、私は何かを学んだ。 –
助けてくれて嬉しいです - 例のコードでは、同じ問題を扱うためにデータを読むときに 'na.strings =" "'オプションを使いました。 – Damian