объединение 2 таблиц с условиями и разным количеством строк - PullRequest
0 голосов
/ 21 мая 2019

Я хочу объединить два data.table с разным количеством строк

Table 1= 18000 rows
Table 2= 3000 rows

Для сопоставления двух таблиц существуют разные условия Первое условие: идентификатор таблицы 2 должен быть похож на идентификатор таблицы1 Второе условие: дата таблицы 2 должна совпадать или превышать дату начала таблицы 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")

Table2: структура (список (user.name.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/201700: 44,2,5 "," Бета, EURCHF, 31/11 / 2017 00: 57: 00,1,78 "," Бета, EURUSD, 01/11 / 2017 04: 12,3.23 "," Бета, EURUSD, 31 /12/2018 00: 17,0.678 "), class =" factor ")), row.names = c (NA, 5L), class =" data.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), class =" data.frame ")

1 Ответ

0 голосов
/ 22 мая 2019

Вот подробности моей сессии sessionInfo () Версия R 3.5.2 (2018-12-20) Платформа: i386-w64-mingw32 / i386 (32-разрядная версия) Под управлением: Windows 7 (сборка 7601) с пакетом обновления 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...