1

次のような2つのデータフレームがあります。

ノード:

new_id  Name  old_id
1        foo    560
2        fie    561
3        fee    562
4        fim    563

関係:

StartID   EndID
560       561
561       563
561       562
563       560

2 番目のファイルの ID は、最初のファイルの古い ID です。最初の一致する行に基づいて、2 番目のファイルの ID を更新したいと考えています。

希望の結末:

StartID  EndID
1         2
2         4
2         3
4         1

を見ていましreplace()たが、インデックスを知らなくてもこれをどのように使用できるかは不明です。

4

2 に答える 2

3

match関数 (new_id にインデックスを返す) は、あなたが探していたものでした:

cbind(StartID = Nodes$new_id[match( Rels$StartID ,Nodes$old_id)] , 
      EndID = Nodes$new_id[match( Rels$EndID ,Nodes$old_id)] )

     StartID EndID
[1,]       1     2
[2,]       2     4
[3,]       2     3
[4,]       4     1
于 2013-08-19T22:23:42.720 に答える