data.table join with roll =“nearest”返回“搜索值”而不是原
发布时间:2020-12-12 07:07:29 所属栏目: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 Value215 2 1 因此,返回正确的行.但是
我遇到了二进制搜索函数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的人. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sqlserver2008错误sqlstate:42000 NativeError:1802解决办
- SQLserver2005express和stdio2008安装时的常见问题
- Mysql 5.7.19 免安装版配置方法教程详解(64位)
- sql-server – 我可以从SQL Server中删除sa登录名吗?
- 最新版MySQL5.7.19解压版安装指南
- MSSQL 基本语法及实例操作语句
- 报表服务 – 将Tablix行高度设置为SQL Server Report Build
- sql-server – 从Azure V1(ASM)到V2(ARM)的AlwaysOn SQL VN
- 探讨如何配置SQL2008,让其允许C#远程外部连接的方法详解
- sql – 如何从varchar中获取最后四个字符?