sta*_*ant 13 r data.table
我正在尝试与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")
Run Code Online (Sandbox Code Playgroud)
我希望这个输出:
#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
Run Code Online (Sandbox Code Playgroud)
我很乐意使用[
或者data.table:::merge
我想要一个不修改的选项DT
或DT1
(比如更改列名并调用merge并将其更改回来)
更新:自data.table v1.9.6(2015年9月19日发布)以来,merge.data.table()
接受并很好地处理参数by.x=
和by.y=
.这是下面引用的FR(现已关闭)的更新链接.
是的,这是尚未实现的功能请求:
FR#2033将by.x和by.y添加到merge.data.table
没有任何阻止它的东西.只是未完成的事情.我很少需要,merge
而且更普遍地意识到它的用处很慢.我们在提高merge
性能方面取得了很好的进展X[Y]
,并且此功能请求具有最高优先级.如果你更喜欢它,我们非常欢迎merge.data.table
你自己添加这些参数并提交更改.我们尝试将源代码保存在一个函数/文件中,因此通过查看merge.data.table
源代码,您可以关注它并查看需要执行的操作.