我有一个主数据表,它有364行和3列:
Date Weekday Weight
2012-01-01 Monday 100
2013-01-02 Tuesday 200
...
一个带有7行2列的help数据表:
Weekday Coefficient
Monday 0.91
Tuesday 0.84
Wednesday 0.99
...
现在我想在主数据表中创建第四列,该列基于星期几的“权重/系数”。
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 <--
...
我猜问题在于两个数据表的长度不同。有没有办法在主数据表操作中引用较短的数据表使其正常工作?
setDT(main, key='Weekday')[help][, Weight_divided:=Weight/Coefficient]
。这将使代码更有效,并在帮助函数的基础上将重量除以系数。 - akrun重量*系数
。 - nicoladata.table
。是的,在查看结果表时,你应该执行乘法而不是除法。 - Andriy T.