【发布时间】:2017-08-24 03:00:59
【问题描述】:
我有一个数据框df。它有几列,其中两列是dates 和serial_day,对应于观察的日期和MATLAB 的连续日。我想限制我的时间序列,使两个连续观察之间的增量(以天为单位)为 3 或 4,并用 NA 行分隔这些块。
众所周知,连续的每日观察永远不会发生,2天分离后2天分离的情况很少见,因此可以忽略。
在示例中,为方便起见,显示了increment,但使用diff 函数可以轻松生成。所以,如果数据框是
serial_day increment
1 4 NA
2 7 3
3 10 3
4 12 2
5 17 5
6 19 2
7 22 3
8 25 3
9 29 4
10 34 5
我希望得到一个新的数据框:
serial_day increment
1 4 NA
2 7 3
3 10 3
4 NA ## Entire row of NAs NA
5 19 NA
6 22 3
7 25 3
8 29 4
9 NA ## Entire row of NAs NA
如果不循环,我想不出办法做到这一点,这在 R 中是个坏主意。
【问题讨论】:
-
第一个
df中的第6行不应该也被删除吗?该行的增量小于 3。如果我正确理解您的描述,您希望只保留增量为 3 或 4 的行,对吗? -
@KenS。我想将第 6 行保留在原始数据框中,因为从 6 到 7 的时间增量为 3。
标签: r datetime time subsequence