gpt4 book ai didi

r - data.table join with roll = “nearest” 返回 "search value"而不是原始值

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

我的二分查找功能出现问题 J()roll = "nearest" .

假设我得到了这个示例 data.table "dt"

Key  Value1  Value2
20 4 5
12 2 1
55 10 7

我用 roll = "nearest" 搜索:
dt[J(15), roll = "nearest"]

...返回:
Key  Value1  Value2
15 2 1

因此,返回正确的行。但是,原始“键”值 (12) 被替换为搜索中使用的值 (15)。

我的问题是这是一种正常行为,可以更改此自动覆盖吗?

编辑:

可重现的示例(注意我使用的是 1.9.7 版):
library("data.table")
dt <- data.table(c(20,12,55), c(4,2,10), c(5,1,7))
dt
# V1 V2 V3
#1: 20 4 5
#2: 12 2 1
#3: 55 10 7
setkey(dt, V1)
dt[J(15), roll = "nearest"]
# V1 V2 V3
#1: 15 2 1

最佳答案

您可能需要 1.9.7 中的 data.table 来制作 x.V1工作。然后你可以引用x中的专栏数据集明确。这是必需的,因为连接中使用的列取自第二个数据集 i ,就像在基数 R 中一样。

library("data.table")
dt <- data.table(c(20,12,55), c(4,2,10), c(5,1,7))
setkey(dt, V1)
dt[J(15), .(V1=x.V1, V2, V3), roll = "nearest"]
# V1 V2 V3
#1: 12 2 1

正如您提到的,您已经拥有 1.9.7,对于没有的人,请参阅 Installation wiki .

关于r - data.table join with roll = “nearest” 返回 "search value"而不是原始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39160794/

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