将数据框1中的值替换为数据帧2

时间:2017-11-09 12:51:46

标签: r dataframe lapply tidyverse purrr

我有两个数据帧(tibbles):

library(tidyverse)

dat_x <- tribble(
  ~id, ~month_1, ~month_2,
  "A", NA, NA,
  "B", NA, 0,
  "C", 0, 0
)

dat_y <- tribble(
  ~id, ~month_1, ~month_2,
  "A", 0, 0,
  "B", 0, 0,
  "C", 0, 30
)

我希望将dat_y中的单元格替换为NA,其中dat_x中的相应单元格为NA。预期产出:

> expected_output
# A tibble: 3 x 3
#     id month_1 month_2
#  <chr>   <dbl>   <dbl>
#1     A      NA      NA
#2     B      NA       0
#3     C       0      30

我尝试使用purrr::map2()但无法让它发挥作用。

map2(dat_x, dat_y, ~ .y[is.na(.x)] <- NA) #Error: object '.y' not found

有人为此提供了优雅的解决方案吗?越紧凑和可读性越好:)。

1 个答案:

答案 0 :(得分:2)

dat_y[is.na(dat_x)] <- NA

应该够了吗?