我有一个为时间间隔给出的理论值的数据表:
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
答案 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