是否有R函数用于合并或替换转换表中向量的元素?

时间:2018-12-19 16:29:01

标签: r replace

我有两个数据框。第一个是“翻译表”(df1),其中一列中有一个物种的名称,另一列中是编码的名称。 第二个数据框是一个表,其中有一列带有物种名称的列,我想创建一个新列,其编码名称与同一行的物种相对应。

df1 名称代码 Ammi-majus Amaj 金字塔形棘足 Daucus-carota Dcar 牛膝子

df2 名称 Ammi-majus 金字塔形棘 胡萝卜 胡萝卜 胡萝卜 胡萝卜 牛子 牛子 牛子

我需要这个(这是一个例子,我有更多的物种) 名称名称代码 Ammi-majus Amaj 金字塔形棘足 Daucus-carota Dcar Daucus-carota Dcar Daucus-carota Dcar Daucus-carota Dcar 牛子 牛子 牛t子Alap

感谢您的帮助, 阿德里安

1 个答案:

答案 0 :(得分:0)

对于将来的读者来说,使用baser和dplyr函数都可以实现作者想要的结果:

baser

merge(sp, codes, by.x="sp.name", by.y="name")

dplyr

sp %>% left_join(codes, by=c("sp.name"="name"))

数据:

sp <- read.table(header=T, text="sp.name
Ammi-majus
Anacamptis-pyramidalis
Daucus-carota
Daucus-carota
Daucus-carota
Daucus-carota
Arctium-lappa
Arctium-lappa
Arctium-lappa")

codes <- read.table(header=T, text="name    code
Ammi-majus  Amaj
Anacamptis-pyramidalis  Apyr
Daucus-carota   Dcar
Arctium-lappa   Alap")