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

如何基于两个tibble的对应时间列计算时间差并生成新列?

解决方案:基于itemID匹配计算日期差值

你需要将两个tibble按itemID关联,计算df_1中date14与对应item在df_2中introduction_first的日期差并生成新列,以下是两种简洁的实现方式:

方法一:使用dplyr(适配tibble,推荐)

通过left_join按itemID合并数据集后,直接计算日期差值:

library(dplyr)

# 合并并计算日期差
df_result <- df_1 %>%
  left_join(df_2, by = "itemID") %>%
  mutate(date_diff = date14 - introduction_first)

# 查看结果
head(df_result)

运行后会在df_1基础上新增introduction_first和date_diff列,date_diff单位为天,正数表示date14晚于introduction_first,负数则相反。

方法二:使用Base R(无需额外包)

用merge函数合并后计算差值:

# 合并数据集
merged_df <- merge(df_1, df_2, by = "itemID", all.x = TRUE)
# 计算日期差
merged_df$date_diff <- merged_df$date14 - merged_df$introduction_first

# 查看结果
head(merged_df)

示例输出(前6行):

# A tibble: 6 × 4
  itemID date14     introduction_first date_diff
   <dbl> <date>     <date>             <drtn>   
1      1 2018-01-01 2018-02-13         -43 days 
2      1 2018-01-15 2018-02-13         -29 days 
3      1 2018-01-29 2018-02-13         -15 days 
4      1 2018-02-12 2018-02-13          -1 days 
5      1 2018-02-26 2018-02-13          13 days 
6      1 2018-03-12 2018-02-13          27 days 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 00:02:46