我想合并两个不同长度的导入数据集,如果两个数据集都有值,则保留B中的值。数据集A包含1970 - 2016年的每日数据,数据集B包含1980年至2016年的每日数据。合并后的数据集应该与A的长度相同,但其中填充了来自B的值。示例数据:
a=matrix(c(1:10),10,10) b=matrix(c(NA,NA,3:8,NA,NA),10,5)
发布于 2017-04-05 20:47:12
您可以将两个数据框联接在一起,然后根据所需的任何规则创建新列。我不知道您的数据到底是什么样子,但是left_join会得到dataset a中的行数,然后您可以mutate一个新列来填充空白。最后,使用select丢弃额外的两列。
library(tidyverse)
a <- tibble(year = 1970:2016, value = rnorm(47))
b <- tibble(year = 1980:2016, value = rnorm(37))
a %>%
left_join(b, by = "year") %>%
mutate(value = ifelse(is.na(value.y), value.x, value.y)) %>%
select(year, value)https://stackoverflow.com/questions/43231503
复制相似问题