首页 > 解决方案 > 加入 2 个具有条件和不同行数的表

问题描述

我想加入两个data.table不同行数的 s

Table 1= 18000 rows
Table 2= 3000 rows

为了匹配两个表,有不同的条件 第一个条件:表 2 的 ID 应该与表 1 的 ID 相似 第二个条件:表 2 的日期应该等于或高于表 1 的开始日期,低于表 1 的结束日期表 1 我尝试了这样的代码,但它不起作用

match<-Table1[Table2, on = c("ID.currency==ID.currency",  "start date<=date table2","end date>date table2")]

非常感谢您的帮助

表1:结构(列表(ID.currency.startdate.open.high.low.close.volume.enddate.number.of.trades =结构(c(4L,1L,2L,3L,5L),.Label = c ("EURCHF,01/11/2017 01:00,1.1639,1.1656,1.1619,1.162,5500,01/11/2017 01:59,1555", "EURCHF,01/11/2017 02:00,1.1651,1.1666 ,1.1633,1.164,6000,01/11/2017 02:59,1900", "EURCHF,01/11/2017 03:00,1.1645,1.1662,1.1641,1.1657,6100,01/11/2017 03:59, 3000", "EURUSD,01/11/2017 00:00,1.1619,1.1646,1.1659,1.1607,5000,01/11/2017 00:59,1500", "EURUSD,01/11/2017 04:00,1.1619 ,1.1646,1.1659,1.1607,7000,01/11/2017 04:59,3500"), class = "factor")), row.names = c(NA, 5L), class = "data.frame")

表2:结构(列表(用户名.ID.currency.date.score =结构(c(2L,3L,4L,1L,5L),.Label = c(“Alpha,EURCHF,31/11/2017 00: 57:00,2.98", "Alpha,EURUSD,01/11/2017 00:44,2.5"​​, "Beta,EURCHF,31/11/2017 00:57:00,1.78", "Beta,EURUSD,01/ 11/2017 04:12,3.23", "Beta,EURUSD,31/12/2018 00:17,0.678"), class = "factor")), row.names = c(NA, 5L), class = "数据.frame")

输出:

结构(列表(ID.currency.startdate.open.high.low.close.volume.enddate.number.of.trades.user.name.ID.currency.date.score = 结构(c(4L,1L,2L, 3L, 5L), .Label = c("EURCHF,01/11/2017 01:00,1.1639,1.1656,1.1619,1.162,5500,01/11/2017 01:59,1555,NA,NA,NA,NA ", "EURCHF,01/11/2017 02:00,1.1651,1.1666,1.1633,1.164,6000,01/11/2017 02:59,1900,NA,NA,NA,NA", "EURCHF,01/11 /2017 03:00,1.1645,1.1662,1.1641,1.1657,6100,01/11/2017 03:59,3000,NA,NA,NA,NA", "EURUSD,01/11/2017 00:00,1.1619, 1.1646,1.1659,1.1607,5000,01/11/2017 00:59,1500,Alpha,EURUSD,01/11/2017 00:44,2.5"​​, "EURUSD,01/11/2017 04:00,1.1619,1.1646 ,1.1659,1.1607,7000,01/11/2017 04:59,3500,Beta,EURUSD,01/11/2017 04:12,3.23"), class = "factor")), row.names = c(NA , 5L), 类 = "data.frame")

标签: r

解决方案


以下是我的 sessionInfo sessionInfo() R 版本 3.5.2 (2018-12-20) 的详细信息 平台:i386-w64-mingw32/i386 (32-bit) 运行条件:Windows 7 (build 7601) Service Pack 1


推荐阅读