首页 > 解决方案 > 在 R 中,使用一个日期列如何从当前行中减去上面的 2 个点并在新列中添加结果?

问题描述

我有一个日期列,我只想使用这一列中的信息

      Date 
2020-01-05 
2020-01-30  
2020-01-20 
2020-01-10  
2020-01-15 
2020-01-30 

我创建一个新列

df$3to1_difference

我想创建的函数给了我这个结果。我想让第三列减去第一列

    Date | 3to1_difference
2020-01-05  N/A
2020-01-30  N/A
2020-01-20  15
2020-01-10  -20
2020-01-15  -5
2020-01-30  20

标签: rdataframedatediff

解决方案


library(lubridate)
library(tibble)
library(dplyr)

tbl <- tibble::tibble(date = lubridate::as_date( c("2020-01-05", "2020-01-30","2020-01-20", "2020-01-10", "2020-01-15", "2020-01-30")))
tbl %>% mutate(`3to1difference` = date - lag(date, n = 2)) ## as difference in days

tbl %>% mutate(`3to1difference` = as.numeric(date - lag(date, n = 2))) ## as numeric variable

推荐阅读