首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据R中的日期将数据帧A和B合并在一起,但如果它们重叠,则保留A中的值

根据R中的日期将数据帧A和B合并在一起,但如果它们重叠,则保留A中的值
EN

Stack Overflow用户
提问于 2017-04-05 20:40:56
回答 1查看 31关注 0票数 0

我想合并两个不同长度的导入数据集,如果两个数据集都有值,则保留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)

EN

回答 1

Stack Overflow用户

发布于 2017-04-05 20:47:12

您可以将两个数据框联接在一起,然后根据所需的任何规则创建新列。我不知道您的数据到底是什么样子,但是left_join会得到dataset a中的行数,然后您可以mutate一个新列来填充空白。最后,使用select丢弃额外的两列。

代码语言:javascript
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43231503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档