2016-05-20 15 views
0

複数の列を持つ2つのデータフレームがあります。 DF柱の一つ - Aが繰り返さ言葉別のDFで不等長の一致列

A 
cat 
dog 
shark 
mouse 
shark 
dog 
cat 

含まれています - Bを、私は2つの列

B 
a  b 
cat animal-a 
dog animal-b 
shark animal-c 
mouse animal-d 

を持って、私は次のように出力

A 
    a  b 
    cat animal-a 
    dog animal-b 
    shark animal-c 
    mouse animal-d 
    shark animal-c 
    dog animal-b 
    cat animal-a 

どのようにすることができますを達成しようとしています私がやる?私は不等な列の猫について考えていたが、何もしなかった。ご意見ありがとうございます。

+3

'$ bを使用することができます< - B $ b [match(A $ a、B $ a)] ''であり、最初の列が 'd ata.frame''A'です。 – mtoto

+0

@mtotoありがとうございました。 Opsは申し訳ありませんが、タイトルを修正します。 – HoHoHo

答えて

0

これはmergeを使用して解決できますが、テーブルの順序は失われます。 mtotoの解は、順序を保持します。

merge(B, A, by.x = 'a', by.y = 'A') 

が与える:

 a  b 
1 cat animal-a 
2 cat animal-a 
3 dog animal-b 
4 dog animal-b 
5 mouse animal-d 
6 shark animal-c 
7 shark animal-c 
0

をするだけ ""

colnames(DF)[1] <- "a" 

としてDF1の列に名前を付け、その後、あなたはmerge

merge(DF1, DF2,all.x=T)