r中连续行的时间差(以小时为单位)

时间:2016-05-24 12:44:39

标签: r dataframe dplyr posixct

我有以下数据框

      id        day total_amount      new
   (int)     (fctr)        (int)   (dfft)
1      1 2015-07-09         1000 105 days
2      1 2015-10-22          100  21 days
3      1 2015-11-12          200  15 days
4      1 2015-11-27         2392  19 days
5      1 2015-12-16          123  NA days
6      6 2015-07-09          200  NA days
7      7 2015-07-09         1000  49 days
8      7 2015-08-27       100018  90 days
9      7 2015-11-25         1000  NA days
10     8 2015-08-27         1000 102 days
11     8 2015-12-07        10000  42 days
12     8 2016-01-18          796  73 days
13     8 2016-03-31        10000  NA days
14    15 2015-09-10         1500  20 days
15    15 2015-09-30         1000  NA days

以下行计算每组数据的连续行的时间差:

library(dplyr)
group_by(df, id) %>% mutate(new = as.Date(lead(day)) - as.Date(day))

但它返回Day而不是小时的时差。 如何更改上面的代码来计算小时数差异?或任何有关新解决方案的建议。

1 个答案:

答案 0 :(得分:1)

尝试:

mutate(new = as.numeric(difftime(time1 = as.Date(lead(day)),
time2 = as.Date(day), units = 'hours')))