相关疑难解决方法(0)

tidyverse 中的非等值加入

我想知道是否有人知道dplyr扩展包 (dbplyrdtplyr) 是否允许在通常的 dplyr 工作流程中进行非等值连接?我很少需要data.table,但快速非等值连接是我总是需要的唯一时刻setDT,然后执行连接,然后用 切换回来as_tibble()。我浏览了 github 上的包中的问题,但没有找到这是计划中的还是已经实现的。

join r dplyr dtplyr dbplyr

12
推荐指数
2
解决办法
1986
查看次数

R dplyr加入日期范围

我想连接两个表xxxyyy使用复合唯一键和日期范围。在 sql 中,我只需在连接中指定,但我无法开始dplyr工作。这可能吗?

test<- inner_join(xxx, yyy, by = c("ID" = "ID",
                               "NRA"="NRA",
                               "date_low">"date",
                               "date_high"<"date"),
                               copy = FALSE)
Run Code Online (Sandbox Code Playgroud)

r dplyr

8
推荐指数
2
解决办法
8902
查看次数

按日期范围联接表

我正在寻找一种简单的方法来按日期范围联接两个表。一个表包含确切的日期,另一个表包含两个标识时间段开始和结束的变量。如果第一个表中的日期与第二个表中的范围不符,则需要加入表。

data1 <- data.table(date = c('2010-01-21', '2010-01-25', '2010-02-02', '2010-02-09'),
                name = c('id1','id2','id3','id4'))


data2 <- data.table(beginning=c('2010-01-15', '2010-01-23', '2010-01-30', '2010-02-05'), 
                ending = c('2010-01-22','2010-01-29','2010-02-04','2010-02-13'),
                class = c(1,2,3,4))

result <- data.table(date = c('2010-01-21', '2010-01-25', '2010-02-02', '2010-02-09'),
                 beginning=c('2010-01-15', '2010-01-23', '2010-01-30', '2010-02-05'), 
                 ending = c('2010-01-22','2010-01-29','2010-02-04','2010-02-13'),
                 name = c('id1','id2','id3','id4'),
                 class = c(1,2,3,4))
Run Code Online (Sandbox Code Playgroud)

有什么帮助吗?我发现了一些困难的例子,但由于格式的原因,它们甚至无法处理我的数据。我需要类似的东西:

select * from data1
left join
select * from data2
where data2.beginning <= data1.date <= data2.ending
Run Code Online (Sandbox Code Playgroud)

谢谢

merge join r date range

5
推荐指数
1
解决办法
4385
查看次数

标签 统计

r ×3

dplyr ×2

join ×2

date ×1

dbplyr ×1

dtplyr ×1

merge ×1

range ×1