【发布时间】:2014-01-08 13:38:59
【问题描述】:
我想计算我的专栏value 的差异(更改/增量)。数据框:
ID Dato Tenor value tmt
B1 2014-01-02 3M 8 0.25
B1 2014-01-02 6M 14 0.50
B1 2014-01-02 1Y 20 1.00
B1 2014-01-02 2Y 41 2.00
B1 2014-01-02 3Y 57 3.00
B1 2014-01-02 5Y 80 5.00
B1 2014-01-02 7Y 85 7.00
B1 2014-01-02 10Y 89 10.00
输出应该是 6M-3M,2Y-1Y 的差异,因此我正在寻找看起来像这样的新 data.frame:
ID Dato Tenor value tmt
B1 2014-01-02 6M 6 0.25
B1 2014-01-02 1Y 6 0.50
B1 2014-01-02 2Y 21 1.00
B1 2014-01-02 3Y 16 1.00
B1 2014-01-02 5Y 23 2.00
B1 2014-01-02 7Y 5 2.00
B1 2014-01-02 10Y 4 3.00
在 R 中有一种简洁的方法吗?一般来说,有一种计算差异的方法,其中差异是通过 wrt 计算的。自定义订单/索引?在这个 ex 中,索引变量是tmt。 data.frame 可能看起来像这样:
ID Dato Tenor value tmt
B1 2014-01-02 1Y 20 1.00
B1 2014-01-02 2Y 41 2.00
B1 2014-01-02 3Y 57 3.00
B1 2014-01-02 5Y 80 5.00
B1 2014-01-02 7Y 85 7.00
B1 2014-01-02 10Y 89 10.00
B1 2014-01-02 3M 8 0.25
B1 2014-01-02 6M 14 0.50
结果应该是 value(tmt2) - value(tmt1) 其中 tmt2>tmt1 总是。 斯蒂格
【问题讨论】:
-
好的。因此,在您的编辑中,只需先使用
order,然后再使用diff。还是我错过了什么? -
这只是数据的一个子集。还有 2-3 个分组变量。最好我想订购和计算每组的差异,然后用平均值聚合。组由 ID、名称、日期和来源组成,留下 Tenor/tmt 和值有待区分。
标签: r difference