如何在 dplyr 中获取 full_join 以保留 data.tables?
How can I get full_join in dplyr to preserve data.tables?
我正在使用 dplyr
的 full_join
合并两个 data.tables,如下所示:
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.frame,而不是 data.table。
class(both)
# [1] "data.frame"
我希望稍后能够在我的代码中利用 data.tables 的速度(最好使用 dplyr
)。 full_join
中是否有一些选项可以保留 data.tables,或者我是否必须使用 data.table
语法进行合并?
查看 latest dplyr docs (currently v0.4.1),与 data.frame 方法不同,data.table (join.tbl_dt
) 的底层连接方法尚不支持 full_join()
(join.tbl_df
).
我在 dplyr github 上的搜索表明目前没有针对此的突出功能请求。因此,我的建议是,如果您希望看到它得到实施,请提出请求,并在此期间使用 merge
。
我正在使用 dplyr
的 full_join
合并两个 data.tables,如下所示:
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.frame,而不是 data.table。
class(both)
# [1] "data.frame"
我希望稍后能够在我的代码中利用 data.tables 的速度(最好使用 dplyr
)。 full_join
中是否有一些选项可以保留 data.tables,或者我是否必须使用 data.table
语法进行合并?
查看 latest dplyr docs (currently v0.4.1),与 data.frame 方法不同,data.table (join.tbl_dt
) 的底层连接方法尚不支持 full_join()
(join.tbl_df
).
我在 dplyr github 上的搜索表明目前没有针对此的突出功能请求。因此,我的建议是,如果您希望看到它得到实施,请提出请求,并在此期间使用 merge
。