在所有组中复制相同的关键字列表

时间:2018-05-03 22:00:49

标签: r csv merge left-join

我有两个csv文件,当他们的交叉引用(文件1)与代码列表(文件2)匹配时,我希望在所有组中复制相同的关键字。我知道这在R中是可能的,但不知道如何。任何帮助表示赞赏。

档案1

 Group      Cross Reference
CTY23-A     A11
CTY23-C     A11
CTY23-B     A11
CTY23-D     A11

文件2

Code      keyword
A11       AV440
A11       AV660
A11       AV760
A11       AV240

输出:

Group        keyword
CTY23-A      AV440
CTY23-A      AV660
CTY23-A      AV760
CTY23-A      AV240
CTY23-C      AV440
CTY23-C      AV660
CTY23-C      AV760
CTY23-C      AV240
CTY23-B      AV240
CTY23-B      AV440
CTY23-B      AV660
CTY23-B      AV760
CTY23-D      AV240
CTY23-D      AV440
CTY23-D      AV660
CTY23-D      AV760

2 个答案:

答案 0 :(得分:0)

merge(dat1,dat2,by.x="Cross.Reference",by.y="Code")
   Cross.Reference   Group keyword
1              A11 CTY23-A   AV440
2              A11 CTY23-A   AV660
3              A11 CTY23-A   AV760
4              A11 CTY23-A   AV240
5              A11 CTY23-C   AV440
6              A11 CTY23-C   AV660
7              A11 CTY23-C   AV760
8              A11 CTY23-C   AV240
9              A11 CTY23-B   AV440
10             A11 CTY23-B   AV660
11             A11 CTY23-B   AV760
12             A11 CTY23-B   AV240
13             A11 CTY23-D   AV440
14             A11 CTY23-D   AV660
15             A11 CTY23-D   AV760
16             A11 CTY23-D   AV240

答案 1 :(得分:0)

使用tidyverse,我们会为full_joinselect提供所需的列

library(dplyr)
full_join(df1, df2, by = c(CrossReference = "Code")) %>% 
        select(-CrossReference)
#    Group keyword
#1  CTY23-A   AV440
#2  CTY23-A   AV660
#3  CTY23-A   AV760
#4  CTY23-A   AV240
#5  CTY23-C   AV440
#6  CTY23-C   AV660
#7  CTY23-C   AV760
#8  CTY23-C   AV240
#9  CTY23-B   AV440
#10 CTY23-B   AV660
#11 CTY23-B   AV760
#12 CTY23-B   AV240
#13 CTY23-D   AV440
#14 CTY23-D   AV660
#15 CTY23-D   AV760
#16 CTY23-D   AV240