【发布时间】:2015-06-08 14:55:07
【问题描述】:
我有一个 main data.table,它有 364 行和 3 列:
Date Weekday Weight
2012-01-01 Monday 100
2013-01-02 Tuesday 200
...
还有一个 7 行 2 列的 help data.table:
Weekday Coefficient
Monday 0.91
Tuesday 0.84
Wednesday 0.99
...
现在我想在主 data.table 中创建第 4 列,其中包含基于工作日的“权重/系数”。
Weight_divided <- main[, Weight * help[Weekday==main$Weekday]$Coefficient]
结果如下:
Date Weekday Weight Weight_divided
2012-01-01 Monday 100 91
2013-01-02 Tuesday 200 168
2012-01-03 Wednesday 300 297
2012-01-04 Thursday 400 256
2012-01-05 Friday 500 399
2012-01-06 Saturday 600 410
2012-01-07 Sunday 700 680
2012-01-08 Monday 300 NA <--
2012-01-09 Tuesday 600 NA <--
...
我想问题是两个 data.tables 的长度不同。 有没有办法在主 data.table 操作中引用它与较短的 data.table 一起使用?
【问题讨论】:
-
试试
setDT(main, key='Weekday')[help][, Weight_divided:=Weight/Coefficient] -
顺便说一句,我还没有像你提供的例子那样测试这个,预期的结果是不可重现的
-
@akrun 我猜是
Weight*Coefficient。 -
我错过了
data.table。是的,查看结果表你应该乘而不是除 -
@nicola: 是的,你是对的 * 而不是 / ,抱歉
标签: r data.table