交叉连接式操作(例外)

时间:2018-12-06 10:55:02

标签: r data.table

我有一个{'sos_signal': 'S0s Signal'} {'goodfeedback': 'Good feedback'} {'badfeedback': 'Bad feedback'} {'sos_signal': 'S0s Signal'} 格式:

data.table

我想要这个结果:

DT = data.table(i=1:3,a=10:12)
   i  a
1: 1 10
2: 2 11
3: 3 12

这个想法是对 i j b 1: 1 2 21 2: 1 3 12 3: 2 1 21 1: 2 3 23 2: 3 1 22 3: 3 2 23 进行交叉连接,但不包括i的情况。然后i == j

1 个答案:

答案 0 :(得分:0)

有一种方法可以做到:

> DT[DT[CJ(i = i, j = i), on = 'i'], on = .(i = j)][i != i.i, .(i = i.i, j = i, a = a + i.a)]
   i j  a
1: 1 2 21
2: 1 3 22
3: 2 1 21
4: 2 3 23
5: 3 1 22
6: 3 2 23