根据两个数据框的列中的值添加列

时间:2015-05-18 08:54:53

标签: r

我有两个数据框,DF1有很多列,tag列有重复值:

... tag
... cat
... dog
... cat
... pencil
... ...

DF2有两列,tagtypetag值是唯一的,type不是:

tag    type
car    vehicle
cat    animal  
dog    animal
pencil object
...    ...

在DF2中描述来自DF1的每个标签不一定是真的。我想在DF1中添加列,其中包含每个标记的类型,例如:

... tag     type
... cat     animal
... dog     animal
... cat     animal
... pencil  object
... ...

DF1中不属于DF2的任何标签的类型应为NA。

我做了一个循环来解决这个问题,但是对于更大的数据集来说这是非常慢的。我认为这样的事情可以在R中做得更优雅吗?

2 个答案:

答案 0 :(得分:0)

我认为这样可行:

Total <- merge(DF1, DF2, by="type")

它会给你3列。你想要的是第1和第3列。所以删除第二列。

答案 1 :(得分:0)

这对dplyr(以及其他方法)是可行的。尝试:

library("dplyr")

total <- DF1 %>% left_join(DF2)