查找其日期间隔包含准时日期的值

时间:2018-03-08 08:46:38

标签: r data.table

我有一个为时间间隔给出的理论值的数据表:

var ConfigFilePath = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;

另一方面,我有准时的测量值:

firstDate   lastDate    theoric
2017-01-01  2017-01-03  10
2017-01-05  2017-01-25  20
2017-02-01  2017-08-31  30

对于每个测量值,我希望得到相应的理论值(其间隔包括测量日期的值)。

注意:1。理论间隔不能重叠。 2.如果测量值不在任何恐怖间隔内,则返回NA。

预期产出:

datetime      measured
2017-01-02       11
2017-01-08       22
2017-01-09       19
2017-01-26       25
2017-03-02       32

可重复数据集:

datetime    measured  theoric
2017-01-02  11        10
2017-01-08  22        20
2017-01-09  19        20
2017-01-26  25        NA
2017-03-02  32        30

1 个答案:

答案 0 :(得分:5)

您可以使用非等联接:

measureDt[theoricDt, on = .(datetime >= firstDate, datetime <= lastDate),
          theoric := i.theoric]

measureDt
#     datetime measured theoric
#1: 2017-01-02       11      10
#2: 2017-01-08       22      20
#3: 2017-01-09       19      20
#4: 2017-01-26       25      NA
#5: 2017-03-02       32      30