使用第二个数据集向第一个数据集添加信息

时间:2018-01-17 11:33:31

标签: r

假设我有这两个数据集:

    > a
    id x1 x2 
    1  a  3
    2  b  2
    3  b  1

    > b
    id x1 x2 
    1  c  3
    3     4

我需要的是:使用数据集 b 更新数据集 a

新的 a 应为:

    > a
    id x1 x2 
    1  c  3
    2  b  2
    3  b  4

我对此一无所知。你能告诉我任何包裹吗?

1 个答案:

答案 0 :(得分:0)

dplyr的一个选项:

library(dplyr)

a <- "id x1 x2 
      1  a  3
      2  b  2
      3  b  1"

b <- "id x1 x2 
      1  c  3
      3  NA  4"

a <- read.table(text = a, header = TRUE, stringsAsFactors = FALSE)
b <- read.table(text = b, header = TRUE, stringsAsFactors = FALSE)

a %>% 
  full_join(b, by = "id", suffix = c("", ".1")) %>% 
  mutate(x1 = coalesce(x1.1, x1), x2 = coalesce(x2.1, x2)) %>% 
  select(id, x1, x2)

返回:

 id x1 x2
1  1  c  3
2  2  b  2
3  3  b  4