Ответ на этот вопрос имеет довольно крутой прием, чтобы сделать что-то вроде этого:
library(dplyr)
A %>%
# add dummy variable to first table
mutate(dummy=TRUE) %>%
# join with the second table after adding a dummy variable to it too
left_join(B %>% mutate(dummy=TRUE)) %>%
# filter by the conditions you want
filter(dt >= start, dt <= end) %>%
# remove the dummy column or choose whatever columns you want
select(-dummy)
Обратите внимание, что необработанные данные, публикуемые в вопросе, не имеют секунд в столбцах date_time в отличие от примеров, которые вы показываете в своих попытках, а таблица A содержит несколько дублированных строк (см., Например, dt == '26/02/2019 11:01'
)
Необработанные данные после преобразования столбцов date_time в POSIXct
Таблица A:
A <- structure(list(WEIGHT = c(894L, 946L, 907L, 921L, 866L, 1021L,
1022L, 1032L, 979L, 1097L, 1094L, 880L, 866L, 876L, 876L, 861L,
869L, 890L, 759L, 813L, 845L, 989L, 894L, 963L, 928L, 822L, 906L,
994L, 1011L, 1004L, 996L, 883L, 942L, 950L, 1018L, 1003L, 1021L,
984L, 942L, 1067L, 1034L, 1087L, 1040L, 1090L, 1029L, 1023L,
1010L, 1051L, 988L, 1100L, 985L, 924L, 988L, 1001L, 994L, 958L,
960L, 990L, 995L, 928L, 925L, 1052L, 1034L, 1031L, 944L, 1038L,
1056L, 1050L, 958L, 1007L, 985L, 978L, 1031L, 976L, 1063L, 965L,
1050L, 894L, 830L, 920L, 966L, 992L, 881L, 823L, 1046L, 913L,
885L, 944L, 938L, 937L, 937L, 946L, 985L, 942L, 1098L, 1074L,
1037L, 1032L, 1073L, 1054L, 996L, 1081L, 1010L, 980L, 1044L,
1009L, 963L, 1047L, 1114L, 1110L, 1009L, 998L, 1076L, 1042L,
1011L, 1068L, 1061L, 1018L, 1063L, 1093L, 1108L, 1083L, 1109L,
1057L, 1066L, 1043L, 1054L, 1018L, 1048L, 1045L, 1065L, 1066L,
1052L, 1056L, 1042L, 1039L, 954L, 1015L, 1009L, 1026L, 991L,
1050L, 1050L, 934L, 892L, 1029L, 1020L, 1060L, 1007L, 989L, 1006L,
993L, 1048L, 1025L, 1046L, 988L, 1024L, 1076L, 963L, 1122L, 1019L,
1014L, 907L, 1033L, 989L, 1010L, 1015L, 979L, 1018L, 1054L, 937L,
918L, 1054L, 977L, 1028L, 942L, 1009L, 927L),
dt = structure(c(1545133860,
1545133920, 1550145180, 1551091920, 1551091980, 1551118020, 1551118140,
1551118320, 1551118560, 1551118740, 1551118980, 1551178680, 1551178800,
1551178860, 1551178860, 1551179040, 1551179160, 1551179220, 1551179400,
1551179460, 1551180600, 1551183300, 1551193200, 1551193260, 1551193380,
1551193860, 1551194040, 1551195120, 1551195240, 1551200340, 1551200460,
1551200580, 1551200700, 1551200820, 1551202020, 1551346440, 1551346680,
1551346920, 1551347100, 1551347400, 1551347580, 1551347760, 1551348000,
1551348600, 1551349860, 1551350160, 1551350280, 1551350460, 1551350520,
1551350580, 1551439260, 1551439320, 1551439620, 1551439800, 1551440100,
1551440760, 1551440880, 1551441060, 1551441120, 1551446040, 1551446160,
1551446280, 1551446820, 1551446880, 1551448560, 1551448680, 1551450720,
1551458700, 1551461580, 1552573140, 1552573860, 1552574100, 1552575360,
1552575660, 1552575780, 1552575960, 1552576020, 1552576260, 1553512440,
1553512560, 1553512680, 1553512800, 1553512860, 1553512920, 1553512980,
1553513040, 1553513160, 1553513280, 1553513460, 1553513760, 1553513760,
1553514000, 1553514060, 1553514300, 1553669880, 1553669940, 1553670120,
1553670180, 1553670480, 1553670540, 1553670660, 1553670720, 1553671800,
1553672280, 1553673240, 1553673480, 1553674020, 1553674200, 1553674800,
1553675040, 1553675520, 1553687340, 1553708880, 1553709060, 1553709180,
1553709240, 1553709480, 1553709540, 1553709600, 1553709600, 1553709660,
1553709780, 1553709900, 1553709960, 1553710020, 1553710080, 1553710140,
1553710260, 1553710320, 1553710380, 1553710680, 1553710740, 1554472200,
1554568980, 1554568980, 1554569340, 1554569340, 1554569520, 1554569520,
1554569700, 1554569760, 1554570780, 1554570780, 1554570840, 1554571380,
1554571560, 1554571740, 1554571920, 1554572100, 1554572280, 1554572460,
1554572700, 1554573120, 1554573420, 1554574860, 1554574920, 1554707820,
1554707880, 1554707940, 1554708000, 1554708060, 1554708120, 1554708120,
1554708180, 1554708300, 1554708360, 1554708420, 1554708480, 1554708480,
1554708540, 1554708660, 1554708720, 1554708780, 1554708840, 1554708900,
1554708960, 1554709080, 1554709140), class = c("POSIXct", "POSIXt"
), tzone = "UTC")), row.names = c(NA, -178L), class = "data.frame")
Таблица B:
B <- structure(list(start = structure(c(1542106440, 1542182400, 1542873600,
1543496640, 1543564800, 1543824000, 1543910400, 1543996800, 1544083200,
1544089620, 1544428800, 1544601600, 1544688000, 1544774400, 1544786340,
1545033600, 1545054300, 1545057660, 1545120000, 1545206400, 1545228420,
1545379200, 1546848000, 1546934400, 1547020800, 1547107200, 1547133780,
1547193600, 1547199420, 1547452800, 1547466240, 1547467800, 1547470800,
1547539200, 1547625600, 1547712000, 1547798400, 1547798400, 1548057600,
1548144000, 1548230400, 1548316800, 1548336660, 1548403200, 1548411300,
1548748800, 1548766800, 1548835200, 1548921600, 1549008000, 1549094400,
1549263600, 1549350000, 1549522800, 1549537740, 1549552500, 1549609200,
1549612740, 1549695600, 1549707360, 1549712700, 1549868400, 1549868400,
1549880220, 1549884180, 1549892700, 1549954800, 1549954860, 1549971480,
1549989000, 1550041200, 1550041200, 1550127600, 1550156040, 1550214000,
1550242800, 1550300400, 1550337720, 1550473200, 1550484720, 1550501340,
1550559600, 1550566440, 1550569020, 1550646000, 1550732400, 1550742780,
1550743560, 1550770920, 1550818800, 1550818800, 1550823660, 1550844000,
1550905200, 1550905920, 1550910060, 1550916120, 1550917200, 1551078000,
1551099720, 1551164400, 1551250800, 1551337200, 1551342420, 1551363960,
1551423600, 1551423600, 1551432720, 1551440940, 1551445320, 1551448080,
1551510000, 1551682800, 1551769200, 1551775500, 1551795420, 1551855600,
1551858720, 1551893460, 1551895200, 1551940020, 1551978600, 1552028400,
1552028400, 1552114800, 1552114800, 1552287600, 1552374000, 1552398240,
1552460400, 1552546800, 1552583400, 1552633200, 1552644120, 1552719600,
1552892400, 1552898160, 1552909440, 1552978800, 1552988040, 1553065200,
1553074140, 1553075400, 1553082780, 1553092260, 1553151600, 1553238000,
1553243820, 1553265180, 1553265660, 1553324400, 1553324400, 1553333820,
1553346000, 1553349660, 1553497200, 1553583600, 1553613840, 1553670000,
1553678640, 1553682300, 1553756400, 1553774340, 1553842800, 1553843040,
1553842800, 1553876820, 1553878380, 1553929200, 1553959260, 1554102000,
1554188400, 1554202500, 1554274800, 1554361200, 1554371760, 1554385560,
1554447600, 1554459960, 1554534000, 1554534000, 1554542520, 1554543300,
1554560880, 1554706800, 1554742380, 1554793200, 1554826740, 1554879600,
1554889260, 1554918060), class = c("POSIXct", "POSIXt"), tzone = "UTC"),
end = structure(c(1542126600, 1542213000, 1542904200, 1543509000,
1543595400, 1543854600, 1543941000, 1544027400, 1544089620,
1544106600, 1544459400, 1544632200, 1544718780, 1544787000,
1544805000, 1545054300, 1545057900, 1545064200, 1545150600,
1545228000, 1545237000, 1545409800, 1546878600, 1546965000,
1547051400, 1547134200, 1547137800, 1547200200, 1547224260,
1547466300, 1547470800, 1547471400, 1547483400, 1547569800,
1547656200, 1547742600, 1547799420, 1547829000, 1548088200,
1548174600, 1548261000, 1548336600, 1548347400, 1548411300,
1548433800, 1548756900, 1548779400, 1548865800, 1548952200,
1549038600, 1549125000, 1549306800, 1549393440, 1549538100,
1549553100, 1549566000, 1549614600, 1549652400, 1549738920,
1549712700, 1549738800, 1549893660, 1549880400, 1549911600,
1549885200, 1549911600, 1549972800, 1549989000, 1549998300,
1549998360, 1550084460, 1550050500, 1550156400, 1550170800,
1550242800, 1550257200, 1550338200, 1550343600, 1550485800,
1550503800, 1550516400, 1550602800, 1550568900, 1550569200,
1550689200, 1550776020, 1550743620, 1550770800, 1550775600,
1550862300, 1550823300, 1550842800, 1550862000, 1550916000,
1550910000, 1550916000, 1550948640, 1550919600, 1551099600,
1551121200, 1551207600, 1551294000, 1551365100, 1551380580,
1551380460, 1551445200, 1551430800, 1551447600, 1551440940,
1551466800, 1551466800, 1551553740, 1551726000, 1551796200,
1551812400, 1551812400, 1551895200, 1551895200, 1551898800,
1551898800, 1551978600, 1551985200, 1552071600, 1552071600,
1552114800, 1552146300, 1552330800, 1552398780, 1552417200,
1552503600, 1552583400, 1552590000, 1552645200, 1552676400,
1552762800, 1552899600, 1552910220, 1552935600, 1552988400,
1553022000, 1553108400, 1553075400, 1553083200, 1553092200,
1553108400, 1553194800, 1553281200, 1553281200, 1553265600,
1553273400, 1553367600, 1553333400, 1553346000, 1553349540,
1553367600, 1553540400, 1553614200, 1553626800, 1553713200,
1553682000, 1553713200, 1553799600, 1553799600, 1553880600,
1553851800, 1553876700, 1553886000, 1553886000, 1553959800,
1553972400, 1554145200, 1554203700, 1554231600, 1554318000,
1554372900, 1554385560, 1554404400, 1554490800, 1554490800,
1554577200, 1554542100, 1554543000, 1554561000, 1554577200,
1554743700, 1554748200, 1554827400, 1554836400, 1554890400,
1554920100, 1554922800), class = c("POSIXct", "POSIXt"), tzone = "UTC"),
id = c(1900L, 1900L, 1900L, 1903L, 1903L, 1903L, 1903L, 1903L,
1900L, 1903L, 1905L, 1905L, 1901L, 1905L, 1904L, 1904L, 1904L,
1902L, 1902L, 1902L, 1902L, 1905L, 1905L, 1905L, 1905L, 1905L,
1906L, 1902L, 1902L, 1902L, 1909L, 1910L, 1910L, 1910L, 1907L,
1907L, 1905L, 1907L, 1912L, 1912L, 1912L, 1912L, 1921L, 1921L,
1907L, 1902L, 1950L, 1950L, 1920L, 1920L, 1915L, 1950L, 1950L,
1920L, 1924L, 1924L, 1950L, 1950L, 1950L, 1950L, 1912L, 1950L,
1912L, 1950L, 1915L, 1950L, 1950L, 1950L, 1958L, 1905L, 1924L,
1905L, 1924L, 1972L, 1970L, 1958L, 1958L, 1958L, 1958L, 1955L,
1913L, 1924L, 1958L, 1913L, 1924L, 1913L, 1915L, 1913L, 1915L,
1935L, 1915L, 1913L, 1920L, 1953L, 1920L, 1972L, 1943L, 1958L,
1930L, 1972L, 1930L, 1930L, 1943L, 1915L, 1913L, 1913L, 3316L,
1913L, 3316L, 1960L, 1924L, 1960L, 1972L, 1935L, 1924L, 1924L,
1924L, 1950L, 1973L, 1930L, 1973L, 1972L, 1960L, 1915L, 1960L,
1915L, 1978L, 1978L, 1978L, 1928L, 1960L, 1915L, 1960L, 1940L,
1940L, 1978L, 1978L, 1978L, 1978L, 1928L, 1928L, 1960L, 1940L,
1958L, 1960L, 1928L, 1962L, 1960L, 1935L, 1930L, 1962L, 1960L,
1960L, 1958L, 1943L, 1928L, 1928L, 1928L, 1926L, 1960L, 1950L,
1980L, 1950L, 1962L, 1980L, 1910L, 1910L, 1980L, 1980L, 1915L,
1926L, 1926L, 1978L, 1978L, 1954L, 1987L, 1987L, 1987L, 1926L,
1987L, 1935L, 1973L, 1972L, 1924L, 1972L, 1907L, 1932L, 1932L,
1932L, 1978L, 1970L)), row.names = c(NA, -191L), class = "data.frame")