匹配长度不等的列

时间:2016-05-20 10:43:55

标签: r

我有两个包含多列的数据框。 DF列之一 - A包含重复的单词

A
cat
dog
shark
mouse
shark
dog
cat

在另一个DF - B中,我有两列

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

我该怎么办?我正在考虑用不平等列的猫,但它没有做任何事情。谢谢你的任何建议。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

只需将DF1中的列命名为" a"

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

然后您可以使用merge

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