我正在尝试更改 data.table 中特定行的一列的值。这在我进行矢量扫描时有效,但在我进行二进制搜索时无效。
dtData <- data.table(TickerId = c(1,2,3,4,5), DateTime = c(1,2,3,4,5), Close = c(100,200,300,400,500), key=c('TickerId', 'DateTime'))
dtQuery <- data.table(TickerId = c(1,4), DateTime = c(1,4))
#Binary search doesn't work - both changed rows now contain 101
dtData[dtQuery, Close:=c(101,401)]
#Vector scan works
dtData[TickerId %in% c(1,4) & DateTime %in% c(1,4), Close:=c(101,401)]
有人能指出为什么会这样吗?
另外,在大型 data.table 中更改此类值的最佳(最快)方法是什么?
谢谢你。