gpt4 book ai didi

根据另一个data.table删除data.table中的行

转载 作者:行者123 更新时间:2023-12-04 22:55:37 25 4
gpt4 key购买 nike

我有一个 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
data.table dtB有一些列我想从 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)] 

因为它还取决于日期和值(value)。

我试图将两个表合并在一起并用 not in 语句链接它:
dtA=dtA[dtB, on=date][!(company %in% comapny) & !(value %in% value)]

我收到这条消息:

Join results in more than 2^31 rows (internal vecseq reached physical limit). Very likely misspecified join.



有任何想法吗?

最佳答案

使用反连接:

dtA[!dtB, on=.(date, company, value)]

这匹配 dtA 中的所有记录未在 dtB 中找到的使用 on 中的列.

关于根据另一个data.table删除data.table中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48592437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com