ani*_*ana 3 merge join r dataset sqldf
我使用下面的调用根据不等式条件“加入”我的数据集:
library(sqldf)
sqldf("select *
from dataset1 a,
dataset2 b
a.col1 <= b.col2")
Run Code Online (Sandbox Code Playgroud)
但是,有没有办法可以在没有sqldf 的情况下做到这一点?
到目前为止,我只能看到基于特定公共列上的简单联接的合并函数。
谢谢!
非等(或条件)连接最近在 data.table 中实现,并在当前开发版本 v1.9.7 中可用。请参阅此处的安装说明。
require(data.table) # v1.9.7+
setDT(dataset1) # convert to data.tables
setDT(dataset2)
dataset1[dataset2, on=.(col1 < col2), nomatch=0L]
Run Code Online (Sandbox Code Playgroud)
对于 的每一行dataset2,在根据提供给参数的条件进行连接时查找匹配的行索引on,并返回这些匹配行的所有列。