【发布时间】:2018-02-02 23:45:28
【问题描述】:
我有一个名为dtA的data.table:
我的实际dtA 有 62871932 行和 3 列:
date company value
198101 A 1
198101 A 2
198101 B 5
198102 A 2
198102 B 5
198102 B 6
data.tabledtB 有一些列我想从dtA 中删除,所以dtB 就像规则一样:
实际dtB 有 19615280 行和 3 列:
date company value
198101 A 2
198102 B 5
最终结果是:
date company value
198101 A 1
198101 B 5
198102 A 2
198102 B 6
不是这么简单:
dtA=dtA[!(dtB$company %in% dtA$company)]
因为它还取决于日期和价值。
我尝试将两个表合并在一起,并用 not in 语句将其链接起来:
dtA=dtA[dtB, on=date][!(company %in% comapny) & !(value %in% value)]
我收到这条消息:
Join 结果超过 2^31 行(内部 vecseq 达到物理 限制)。很可能是指定错误的连接。
有什么想法吗?
【问题讨论】:
-
您预期的数据看起来不正确。
198101 B 5应该已被删除。 -
不,dtB 没有 198101 B 5 但 198102 B 5 所以预期结果是正确的..
标签: r data.table