将第一个表与第二个表匹配,并使用R将第二个表中的相应信息复制到第一个表中

时间:2017-02-16 15:27:10

标签: r join merge

我想从参考表的列种类中提取信息,并将其添加到table1

的列种类中
a <- c(1:10)
b <- c(2001,NA,NA,2004,2005,NA,2007,NA,2009,2010)
c <- c('A','B',NA,'D','E','F','G','H',NA,NA)
table1 <- data.frame(serial=a, id=b, species=c)

e <- c(2001:2010)
f <- c('A','B','C','D','E','F','G','H','I','J')
reference_table <- data.frame(id=e, species=f)

我想要两个不同的输出

输出1 - 列种类中的第9行和第10行得到I和J,而第3行的NA保留

#table1
#Serial  id  species
# 1     2001   A
# 2     NA     B
# 3     NA     NA
# 4     2004   D
# 5     2005   E
# 6     NA     F
# 7     2007   G
# 8     NA     H
# 9     2009   I
# 10    2010   J

输出2 - 列id第2行,第6行和第8行分别获得2002,2006和2008年

#table1
#Serial  id  species
# 1     2001   A
# 2     2002   B
# 3     NA     NA
# 4     2004   D
# 5     2005   E
# 6     2006   F
# 7     2007   G
# 8     2008   H
# 9     2009   I
# 10    2010   J

1 个答案:

答案 0 :(得分:0)

我使用了MySQL

UPDATE table1 AS a JOIN reference_table AS b ON a.species = b.species SET a.id = b.id

UPDATE table1 AS a JOIN reference_table AS b ON a.id= b.id SET a.species  = b.species