查找列中时间间隔

时间:2017-06-28 18:29:28

标签: r date

我觉得必须有更清洁的方法来做到这一点。这是一个愚蠢的例子,但是说我有像这样的data.frame(省略了具有恒定间隔的明显废话):

int_time = c()
for(i in 1:nrow(df)){
  tmp = as.numeric(df$date_time[i+1] - df$date_time[i] )
  int_time = c(tmp, int_time)
}

所以说我实际上并不知道间隔是什么或者它不是恒定的。我的问题是找到列中日期之间的间隔的最佳方法是什么。我想出了一个使用循环的东西,但我想知道是否有更好的解决方案:

{{1}}

1 个答案:

答案 0 :(得分:3)

diff接受许多数据类型,并且具有专门用于POSIXt类的向量的方法。在这个例子中

head(diff(df$date_time))

返回

Time differences in mins
[1] 5 5 5 5 5 5

因为你正在采取成对差异,你将失去一个观察。要将其重新放回数据集中,您有两种选择。

对于d_i = x_i - x_ {i-1},请使用

df$int_time <- c(NA, diff(df$date_time))

对于d_i = x_ {i + 1} - x_i,请使用

df$int_time <- c(diff(df$date_time), NA)