如何在R语言中计算同一数据集内两个日期列的差值
R语言实现日期差计算方法
前置说明
你当前数据集中的date1、date2列均为字符类型,计算天数差前需要先转换为R识别的日期格式,再做差值计算即可。
方法1:基础R实现
无需加载额外包,直接用基础函数处理:
# 转换为日期格式 df$date1 <- as.Date(df$date1) df$date2 <- as.Date(df$date2) # 计算日期差生成X变量 df$X <- as.numeric(df$date2 - df$date1)
运行后你示例中date2=2021-07-03、date1=2021-06-28对应的X值为5,符合需求。如果需要忽略日期先后取正数差值,可以把赋值语句改为df$X <- abs(as.numeric(df$date2 - df$date1))。
方法2:tidyverse生态实现
习惯用dplyr、lubridate的场景可以用该方法:
library(dplyr) library(lubridate) df <- df %>% mutate( date1 = ymd(date1), date2 = ymd(date2), X = as.numeric(date2 - date1) )
内容的提问来源于stack exchange,提问作者user16774617
相关产品推荐
相关产品推荐

