合并后,用于合并的列丢失了

New*_*sIn 3 r data.table

如果我运行下面的代码

dt<-data.table(col1=c(0,1,2),col2=c("a","b","c"),col3=c("aa","ab","cc"))
setkey(dt,col1)
dt1<-data.table(a=c(1,2))
dt[dt1]
Run Code Online (Sandbox Code Playgroud)

我得到了以下结果

   col1 col2 col3
1:    1    b   ab
2:    2    c   cc
Run Code Online (Sandbox Code Playgroud)

但是,预期的结果是

   a col1 col2 col3
1:      0    a   aa
2: 1    1    b   ab
3: 2    2    c   cc
Run Code Online (Sandbox Code Playgroud)

如何获得预期的结果?

edd*_*ddi 5

如果您可以修改dt:

dt[dt1, a := i.a][]
#   col1 col2 col3  a
#1:    0    a   aa NA
#2:    1    b   ab  1
#3:    2    c   cc  2
Run Code Online (Sandbox Code Playgroud)

如果你不是,copy()那么首先.