R 如何使用data.table获得时间序列的有效范围?
鉴于这些数据:R 如何使用data.table获得时间序列的有效范围?,r,data.table,R,Data.table,鉴于这些数据: DATE_ID FRACTION 20160922 0 20160929 0 20161006 0 20161013 0 20161020 0 20161027 0.07 20161103 0.22 20161110 0.5 20161117 0.8 20161124 0.95 20161201 1 20161208 1 20161215 1 20170105 1 20170112 1 20
DATE_ID FRACTION
20160922 0
20160929 0
20161006 0
20161013 0
20161020 0
20161027 0.07
20161103 0.22
20161110 0.5
20161117 0.8
20161124 0.95
20161201 1
20161208 1
20161215 1
20170105 1
20170112 1
20170119 1
根据定义,有效范围是具有最小分数的最大日期ID与具有最大分数的最小日期ID之间的间隔:
20161020 0
20161027 0.07
20161103 0.22
20161110 0.5
20161117 0.8
20161124 0.95
20161201 1
我只想使用data.table语法/内部结构来实现这一点。
已经尝试过以下方法:
# Retrieve the upper bound of the interval
t[t[FRACTION == 1, .I[which.min(DATE_ID)]]]
但它返回相对索引。我这里遗漏了一些明显的东西。你可以得到上界和下界,如下所示:
库(data.table)
DT 2:2016-10-27 0.07
#> 3: 2016-11-03 0.22
#> 4: 2016-11-10 0.50
#> 5: 2016-11-17 0.80
#> 6: 2016-11-24 0.95
#> 7: 2016-12-01 1.00
这只解决了部分问题,不返回图示结果。您可以使用此边界筛选表。不起作用?