gpt4 book ai didi

rbind `data.tables`并保留 key

转载 作者:行者123 更新时间:2023-12-03 16:16:07 25 4
gpt4 key购买 nike

我正在寻找与插入已键入键的SQL表类似的行为,在该表中,将添加的新行插入到现有键中。例如,在这种情况下:

dt <- data.table(a=1:10)
setkey(dt, a)
tables()
# NAME NROW MB COLS KEY
# [1,] dt 10 1 a a
dt.2 <- rbindlist(list(dt, data.table(a=1:5)))
tables()
# NAME NROW MB COLS KEY
# [1,] dt 10 1 a a
# [2,] dt.2 15 1 a

我想选择 dt.2dt“继承” key (显然是用增量数据更新),而不是没有实际发生的 key 。

首先,我对丢失 key 感到有些惊讶,但这显然是记录在案的行为。

是否有一种干净的方法来执行此操作,而无需在每个 setkey/ rbind之后都调用 rbindlist

最佳答案

本质上,data.table目前根本不支持行插入,更不用说在键控表中了。 rbind创建一个新的data.table,因此效率不高或内存效率低。

类似的问题在这里:

How to delete a row by reference in data.table?

当前,典型的工作流程是使用freadrbindlist将它们一起从磁盘加载文件,或者使用RODBC或类似方法从数据库加载数据。

我们想添加快速行插入,但尚未完成。

关于rbind `data.tables`并保留 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21097068/

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