R 创建新的变量,以天数为单位和以前的观察值不同?

R 创建新的变量,以天数为单位和以前的观察值不同?,r,datediff,R,Datediff,我在计算一个变量中与先前观察值的天数差异,并将该差异放入一个新变量中时遇到了一个问题。时间戳以年-月-日的形式存储在变量(日期)中的数据帧(df)中,如: date 1993-05-05 1993-05-14 1993-06-27 1993-06-27 1993-07-10 1993-07-27 1993-08-23 1993-09-04 我想创建一个有差异的新变量(df$days.prev)。预期输出应如下所示: date day.prev 1993-05-05 1993-05

我在计算一个变量中与先前观察值的天数差异,并将该差异放入一个新变量中时遇到了一个问题。时间戳以年-月-日的形式存储在变量(日期)中的数据帧(df)中,如:

date
1993-05-05
1993-05-14
1993-06-27
1993-06-27
1993-07-10
1993-07-27
1993-08-23
1993-09-04
我想创建一个有差异的新变量(
df$days.prev
)。预期输出应如下所示:

date        day.prev
1993-05-05
1993-05-14  9
1993-06-27  44
1993-06-27  0
1993-07-10  13
1993-07-27  17
1993-08-23  27
1993-09-04  12
我试着用它来做这件事

df$days.prev <- diff(df$date,lag=1,difference=1)
df$days.prev试试这个:

> transform(df, day.prev= c(NA,diff(as.Date(df[,1]))))
          V1 day.prev
1 1993-05-05       NA
2 1993-05-14        9
3 1993-06-27       44
4 1993-06-27        0
5 1993-07-10       13
6 1993-07-27       17
7 1993-08-23       27
8 1993-09-04       12


df$days.prev…使用
c()
在开头添加一个0或NA?您的解决方案没有给出期望的结果,但它为我指出了正确的方法。在代码中做了一点小改动,我得到了想要的结果:
df$days.prev
> transform(df, day.prev= c(NA,diff(as.Date(df[,1]))))
          V1 day.prev
1 1993-05-05       NA
2 1993-05-14        9
3 1993-06-27       44
4 1993-06-27        0
5 1993-07-10       13
6 1993-07-27       17
7 1993-08-23       27
8 1993-09-04       12
df$days.prev <- c(NA,diff(as.Date(df[,1])))