最近使用data.table roll ='最近的'

时间:2017-01-25 00:04:20

标签: r data.table

我希望在列'日期'上找到最接近的匹配项。使用包data.table和参数roll =' nearest'。我首先匹配另一列(字母):

> result
        date.B letters.B   value.B dates.merge letters.merge    dates.A letters.A   value.A
 1: 2008-01-01         A 0.2016819  2008-01-01             A 2008-01-01         A 0.2655087
 2: 2008-01-02         B 0.8983897  2008-01-04             B 2008-01-04         B 0.3721239
 3: 2008-01-03         C 0.9446753  2008-01-07             C 2008-01-07         C 0.5728534
 4: 2008-01-04         D 0.6607978  2008-01-10             D 2008-01-10         D 0.9082078
 5: 2008-01-05         A 0.2016819  2008-01-13             A 2008-01-13         A 0.2655087
 6: 2008-01-02         B 0.8983897  2008-01-16             B 2008-01-16         B 0.3721239
 7: 2008-01-03         C 0.9446753  2008-01-19             C 2008-01-19         C 0.5728534
 8: 2008-01-04         D 0.6607978  2008-01-22             D 2008-01-22         D 0.9082078
 9: 2008-01-05         A 0.2016819  2008-01-25             A 2008-01-25         A 0.2655087
10: 2008-01-02         B 0.8983897  2008-01-28             B 2008-01-28         B 0.3721239
11: 2008-01-03         C 0.9446753  2008-01-31             C 2008-01-31         C 0.5728534
> A
       dates.A letters.A   value.A dates.merge letters.merge
 1: 2008-01-01         A 0.2655087  2008-01-01             A
 2: 2008-01-04         B 0.3721239  2008-01-04             B
 3: 2008-01-07         C 0.5728534  2008-01-07             C
 4: 2008-01-10         D 0.9082078  2008-01-10             D
 5: 2008-01-13         A 0.2655087  2008-01-13             A
 6: 2008-01-16         B 0.3721239  2008-01-16             B
 7: 2008-01-19         C 0.5728534  2008-01-19             C
 8: 2008-01-22         D 0.9082078  2008-01-22             D
 9: 2008-01-25         A 0.2655087  2008-01-25             A
10: 2008-01-28         B 0.3721239  2008-01-28             B
11: 2008-01-31         C 0.5728534  2008-01-31             C
> B
       date.B letters.B   value.B dates.merge letters.merge
1: 2008-01-01         A 0.2016819  2008-01-01             A
2: 2008-01-02         B 0.8983897  2008-01-02             B
3: 2008-01-03         C 0.9446753  2008-01-03             C
4: 2008-01-04         D 0.6607978  2008-01-04             D
5: 2008-01-05         A 0.2016819  2008-01-05             A

结果,A和B的输出如下:

{{1}}

但是,请注意日期最近的匹配日期.A' 2008-01-07'应该是' 2008-01-05' (参见B)而不是' 2008-01-03'。对于以下所有日期,情况也是如此' 2008-01-07'在date.A的结果。

我在这里做错了什么?

0 个答案:

没有答案
相关问题