0
私は2つのdata.tables持っている:dt1[dt2, on='a']
をマージ割り当て、複数の一致
dt1 = data.table(a=c('a','b'))
dt2 = data.table(a=c('a','b','b'))
は、私が操作を実行するとき
a
1: a
2: b
3: b
はそうdt1[dt2, on='a', c:= 1]
が、私は
a c
1: a 1
2: b 1
3: b 1
を期待しています
代わりに私は
a c
1: a 1
2: b 1
なぜですか?
あなたは「参加した後」と言いますが、参加前に割り当てが発生したように聞こえます - そうですか? – sirallen
@sirallenこれは、元のための結合に基づいています。 'a1 < - data.table(a = 1:3); b1 < - data.table(a = 2:4); a1 [b1、c:= 1、on = 'a'] '。あなたはこのアプローチと 'a1 [b1、c(.SD、c = 1)、on = 'a']の違いを見ることができます。 – akrun