我正在尝试与 data.tables 进行一些左连接合并。包描述引用
在所有连接中,列的名称是不相关的;x的键的列按顺序连接
我知道我可以使用.data.table[
并且data.table:::merge.data.table
我想要的是:合并 X 和 Y 指定键(如基础合并中的 by.x 和 by.y,->为什么要把它拿走?)
假设我有
DT = data.table(x=rep(c("a","b","c"),each=3),y=c(1,3,6),v=1:9,key="x,y,v")
DT1 = data.frame(x1=c("aa","bb","cc"),y1=c(1,3,6),v1=1:3,key="x1,y1,v1")
我想要这个输出:
#data.table:::merge is masking I don't know how to call the base version of merge anymore
R) {base::merge}(DT,DT1,by.x="y",by.y="y1")
y x v x1 v1
1 1 a 1 aa 1
2 1 c 7 aa 1
3 1 b 4 aa 1
4 3 a 2 bb 2
5 3 b 5 bb 2
6 3 c 8 bb 2
7 6 b 6 cc 3
8 6 a 3 cc 3
9 6 c 9 cc 3
我很高兴使用[
ordata.table:::merge
但我想要一个不修改DT
or的选项DT1
(例如更改列名并调用合并并将其改回)