我有一个data.table:
time type price size
1: 1396527597 ASK 436.000 5.4194370
2: 1396527597 ASK 436.003 0.6464547
3: 1396527597 ASK 436.004 0.2400000
4: 1396527597 ASK 436.999 0.1000000
5: 1396527597 ASK 437.000 10.9000000
---
8843660: 1396544914 BID 445.600 0.0194000
8843661: 1396544914 BID 446.608 0.0712000
8843662: 1396544914 BID 446.608 0.0712000
8843663: 1396544914 BID 446.659 0.0500000
8843664: 1396544914 BID 446.659 0.0500000
键入如下:
NAME NROW MB COLS KEY
[1,] result 8,843,664 237 time,type,price,size time,type,price
因此,如果我想快速搜索某些特定值,我需要提供三个密钥。
说,我想找到所有值,其中type = BID和price = 449.1?
写这个:
result[J("BID", 449.1)]
当然以错误结束。
我的问题是,当表有三个键时,只按两个键搜索的sytax是什么?删除未使用的密钥不是一种选择。
答案 0 :(得分:3)
如果其他两个键只有一个值,则可以传递第一个键的所有值:
result[J(unique(time), "BID", 449.1)]
如果您有其他键的更多值,请查看使用值的笛卡尔乘积作为键的CJ()
。