如何计算R中一列中两个日期之间的天数

如何计算R中一列中两个日期之间的天数,r,difftime,R,Difftime,我有以下两个数据帧: Date <- seq(as.Date("2013/1/1"), by = "day", length.out = 17) x <-data.frame(Date) x$discharge <- c("1000","1100","1200","1300","1400","1200","1300","1300","1200","1100","1200","1200","1100","1400","1200","1100","1400") x$discharg

我有以下两个数据帧:

Date <- seq(as.Date("2013/1/1"), by = "day", length.out = 17)
x <-data.frame(Date)
x$discharge <- c("1000","1100","1200","1300","1400","1200","1300","1300","1200","1100","1200","1200","1100","1400","1200","1100","1400")
x$discharge <- as.numeric(x$discharge)
导致:

Date2         concentration BETWEEN
1 2013-01-01           1.5       0
2 2013-01-08           2.5       7
3 2013-01-12           1.5       4
4 2013-01-17           3.5       5
但是,我需要的是在第一个日期旁边打印的两个日期之间计算的天数等,例如

Date2         concentration BETWEEN
1 2013-01-01           1.5       7
2 2013-01-08           2.5       4
3 2013-01-12           1.5       5
4 2013-01-17           3.5       0
这意味着从2013-01-01到2013-01-07是7天,从2013-01-08到2013-01-12是4天等等

y%>%mutate(Between=as.numeric(lead(Date2,default = last(Date2))-Date2))
       Date2 concentration Between
1 2013-01-01           1.5       7
2 2013-01-08           2.5       4
3 2013-01-12           1.5       5
4 2013-01-17           3.5       0


y%>%mutate(Between=as.numeric(c(diff(Date2),0)))
       Date2 concentration Between
1 2013-01-01           1.5       7
2 2013-01-08           2.5       4
3 2013-01-12           1.5       5
4 2013-01-17           3.5       0
在R基中:

 transform(y,Between=as.numeric(c(diff(Date2),0)))
在R基中:

 transform(y,Between=as.numeric(c(diff(Date2),0)))

这就是我想要的。如果可能的话,你能解释一下代码吗?这正是你所做的。只是在每个@Matt连续日期2之间做一个差,然后在末尾加一个零。。ie
c(diff(Date2)),0)
,因为向量缺少一个值。同样对于
导程
,您从下一个值中减去当前值,对于最后一个值,您从当前值中减去当前值,因为没有下一个值,这是我想要的。如果可能的话,你能解释一下代码吗?这正是你所做的。只是在每个@Matt连续日期2之间做一个差,然后在末尾加一个零。。ie
c(diff(Date2)),0)
,因为向量缺少一个值。同样对于
导线
,您从下一个值中减去当前值,对于最后一个值,您从当前值中减去当前值,因为没有下一个值
 transform(y,Between=as.numeric(c(diff(Date2),0)))