如何找到时间轴的连续部分

时间:2014-05-20 13:53:01

标签: r loops

鉴于时间轴中存在间隙的数据框......

date         value
2013-09-03       1
2014-03-08       1
2014-03-19    2815
2014-03-20   13403
2014-03-21   26950

...什么是找到时间轴连续的第一个日期的有效方法? (在上面的例子中,2014-03-19。)

我有一个简单的解决方案......

dt <- max(df$date)

while (length(df[df$date == dt[1] - 1, 1]) == 1) {
    dt <- append(dt[1] - 1, dt)
}

...但是由于我必须循环访问大量数据,因此更高效的东西会更好。

1 个答案:

答案 0 :(得分:1)

您可以使用以下min whichdiff的组合:

min(which(diff(x$date) == 1))

这将为您提供第一行,后面是下一行中的连续日期,在您的示例中,第3行。但是,它不会检查列的其余部分是否也是连续的。