You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中按ID分组并基于日期合并两个dataframe

R合并两个按ID分组的时间序列数据框解决方案

你之前的代码错误原因是:按ID分组生成行号作为匹配键,但两个数据框同一ID下的条目数量、时间对应关系都不匹配,自然得不到预期结果。

可行实现代码

# 加载依赖包
library(tidyverse)

# 首先将两个数据框的date列转换为标准日期时间格式,避免字符串匹配误差,也方便后续计算时间差
d1 <- d1 %>% mutate(date = as.POSIXct(date))
d2 <- d2 %>% mutate(date = as.POSIXct(date))

# 按ID和date做全连接,之后按ID、时间升序排序即可
d12 <- full_join(d1, d2, by = c("ID", "date")) %>%
  arrange(ID, date)

运行上述代码得到的d12和你期望的输出完全一致。如果后续需要计算两个表条目之间的时间邻近度,可以在按ID分组后使用lag()、lead()函数计算相邻行的时间差,也可以用模糊匹配的方式找到每个条目对应最近的另一表记录。

内容的提问来源于stack exchange,提问作者Katharina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:36:02