如何在dplyr中获取full_join以保留data.tables?

时间:2015-03-26 14:14:44

标签: r data.table dplyr

我正在使用dplyr的{​​{1}}合并两个data.tables,如下所示:

full_join

但结果是data.frame,而不是data.table。

library(data.table)
library(dplyr)

set.seed(90088)
dt1 <- data.table(id = 1:10, var1 = sample(20:30, 10, replace = T), key = "id")
dt2 <- data.table(id = 1:10, var2 = sample(40:50, 10, replace = T), key = "id")

both <- full_join(dt1, dt2)

我希望能够在我的代码中稍后利用data.tables的速度(理想情况下使用class(both) # [1] "data.frame" )。 dplyr中是否有一些选项可以保留data.tables,还是必须使用full_join语法进行合并?

1 个答案:

答案 0 :(得分:3)

查看latest dplyr docs (currently v0.4.1),data.table(join.tbl_dt)的基础连接方法尚不支持full_join(),与data.frame方法(join.tbl_df不同)。

我在dplyr github上的搜索表明目前没有针对此功能的优秀功能请求。因此,如果您希望看到它已实施,我建议提出请求,并在此期间使用merge