data.table join with roll =“nearest”返回“搜索值”而不是原始值
发布时间:2020-05-25 10:14:04 所属栏目:MsSql 来源:互联网
导读:我遇到了二进制搜索函数J()和roll =“nearest”的问题. 假设我得到了这个例子data.table“dt” Key Value1 Value220 4 512 2 155 10 7 我用roll =“nearest”进行搜索: dt[J(15), roll = nearest] …返回: Key Value1 Value2
|
我遇到了二进制搜索函数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 dataset中的列.这是必需的,因为连接中使用的列是从第二个数据集i中获取的,因为它位于基础R中.library("data.table")
dt <- data.table(c(20,7))
setkey(dt,.(V1=x.V1,V2,V3),roll = "nearest"]
# V1 V2 V3
#1: 12 2 1
正如你所提到的,你已经拥有1.9.7,对于其他没有看到Installation wiki的人. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- SQL SERVER几个扩展存储过程使用方法
- sql-server-2008 – 实体框架Database.SetInitia
- SQL Server 在SQL查询中使用LIKE来代替IN查询的方
- SQL2008中SQL应用之-锁定(locking) 应用分析
- SQL效率 – [=] vs [in] vs [like] vs [matches]
- SQL Server 使用sp_xml_preparedocument处理XML文
- sql-server – SQL Server Analysis Services和O
- sql-server-2008 – 查询在SSRS 2008或BIDS 2008
- 为什么SQL FullText查询减慢当您的OR?
- sql – 在存储过程中更改数据库名称和跨数据库查
热点阅读
