1

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

df1:

name    code
Ammi-majus  Amaj
Anacamptis-pyramidalis  Apyr
Daucus-carota   Dcar
Arctium-lappa   Alap

df2:

sp.name
Ammi-majus
Anacamptis-pyramidalis
Daucus-carota
Daucus-carota
Daucus-carota
Daucus-carota
Arctium lappa
Arctium lappa
Arctium lappa

这是新列的样子:

sp.namecode
Ammi-majus  Amaj
Anacamptis-pyramidalis  Apyr
Daucus-carota   Dcar
Daucus-carota   Dcar
Daucus-carota   Dcar
Daucus-carota   Dcar
Arctium lappa   Alap
Arctium lappa   Alap
Arctium lappa   Alap

谢谢您的帮助。

4

1 回答 1

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")
于 2020-10-05T14:20:17.323 回答