我有两个数据框,DF1有很多列,tag
列有重复值:
... tag
... cat
... dog
... cat
... pencil
... ...
DF2有两列,tag
和type
,tag
值是唯一的,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中做得更优雅吗?
答案 0 :(得分:0)
我认为这样可行:
Total <- merge(DF1, DF2, by="type")
它会给你3列。你想要的是第1和第3列。所以删除第二列。
答案 1 :(得分:0)
这对dplyr(以及其他方法)是可行的。尝试:
library("dplyr")
total <- DF1 %>% left_join(DF2)