2016-09-02 11 views
0

から取られた対応する名前を持つ列とIDを持つdata.frame列に私はこのようになり、データフレームdf1を持っているの交換しますこのように:は別のdata.frame

entry1 entry2  type  name  value 
46   44  PPrel  activation --> 
52   50  PPrel  activation --> 
29   27  PPrel  activation --> 

今2つのデータフレーム内の共通の列がdf1entry1entry2からdf2からのIDです。

entry1 entry2  type  name  value 
hsa:4052 44  PPrel  activation --> 
hsa:8454 hsa:7057 PPrel  activation --> 
29   27  PPrel  activation --> 

それでは、私は基本的にしたいことはdf1からIDを対応する名前でdf2entry1entry2id Sを置き換えるある:私は私の結果は次のようになりたいのは、これがあります。私はマージを試みたが、明らかにマージはここでは役に立たない。どんな助け?

+1

作品をマージ、我々は一度だけentry1を上、そしてENTRY2に、二回マージする必要があります。 – zx8754

答えて

2

ことは、これを試してみてください:

df2[,1:2]<-lapply(df2[,1:2], 
      function(x) ifelse(x %in% df1$id,df1$name[match(x,df1$id)],x)) 
# entry1 entry2 type  name value 
#1 hsa:4052  44 PPrel activation --> 
#2 hsa:8454 hsa:7057 PPrel activation --> 
#3  29  27 PPrel activation --> 
+0

私はごめんなさい@ニコラですが、動作しません.df2のentry1とentry2の値は変更されましたが、df1の名前ではありません –

+1

df1 $ nameが.character()として設定されていることを確認してください:df1 $ name < -as.character(df1 $ name) – nadizan

関連する問題