gpt4 book ai didi

r - 为所有列 data.table 按组选择最后一行

转载 作者:行者123 更新时间:2023-12-04 14:15:16 26 4
gpt4 key购买 nike

我很惊讶地做了以下事情:

R) system.time(lastOrder <- order[,lapply(.SD,tail,1),by="TRADER_ID,EXEC_IDATE"]);
utilisateur système écoulé
1.45 0.00 1.53
R) nrow(order)
[1] 75301
R) ncol(order)
[1] 23

以为很长,然后我做了
R) system.time(lastOrder <- order[,list(test=tail(EXEC_IDATE,1)),by="TRADER_ID,EXEC_IDATE"]);
utilisateur système écoulé
0.14 0.00 0.14

据我了解,如果您知道要选择的所有行并完成大部分工作,那么我不明白为什么将其应用于所有列应该长 10 倍。我在代码的第一位做错了吗,这是我知道的按组选择最后一行的唯一方法

最佳答案

按组的最后一行:

DT[, .SD[.N], by="TRADER_ID,EXEC_IDATE"]            # (1)

或者,更快(为了速度,尽可能避免使用 .SD):
w = DT[, .I[.N], by="TRADER_ID,EXEC_IDATE"][[3]]    # (2)
DT[w]

请注意,以下功能请求将使方法 (1) 与方法 (2) 一样快:

FR#2330 Optimize .SD[i] query to keep the elegance but make it faster unchanged.

关于r - 为所有列 data.table 按组选择最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14143220/

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