我有一个data.table名字dtA:
我的实际dtA有62871932行和3列:
date company value
198101 A 1
198101 A 2
198101 B 5
198102 A 2
198102 B 5
198102 B 6
Run Code Online (Sandbox Code Playgroud)
data.table dtB有一些我想要删除的列dtA,所以dtB就像规则:
实际dtB有19615280行和3列:
date company value
198101 A 2
198102 B 5
Run Code Online (Sandbox Code Playgroud)
最终结果是:
date company value
198101 A 1
198101 B 5
198102 A 2
198102 B 6
Run Code Online (Sandbox Code Playgroud)
它不是那么简单:
dtA=dtA[!(dtB$company %in% dtA$company)]
Run Code Online (Sandbox Code Playgroud)
因为它还取决于日期和价值.
我尝试将两个表合并在一起,并将其链接到不在语句中:
dtA=dtA[dtB, on=date][!(company %in% comapny) & !(value %in% value)]
Run Code Online (Sandbox Code Playgroud)
我收到这条消息:
加入超过2 ^ 31行的结果(内部vecseq达到物理限制).很可能是错误的加入.
有任何想法吗?
使用反连接:
dtA[!dtB, on=.(date, company, value)]
Run Code Online (Sandbox Code Playgroud)
这匹配使用列中dtA未找到的所有记录.dtBon
| 归档时间: |
|
| 查看次数: |
1177 次 |
| 最近记录: |