У меня есть таблица данных с двумя идентификаторами и значением, подобным этому:
dt <- data.table(id=LETTERS[1:8], id_opposite=c("B","A","H","D", "F","C", "E","G"), value = 1:8)
dt
id id_opposite value
1: A B 1
2: B A 2
3: C H 3
4: D D 4
5: E F 5
6: F C 6
7: G E 7
8: H G 8
Я хочу добавить столбец, содержащий значение, соответствующее id_opposite. Таким образом, для первой строки это будет 2, а для второй строки это будет 1. ie Мой желаемый вывод такой:
id id_opposite value value_opposite
1 A B 1 2
2 B A 2 1
3 C H 3 8
4 D D 4 4
5 E F 5 6
6 F C 6 3
7 G E 7 5
8 H G 8 7
Я знаю, что могу сделать это путем построения таблицы поиска из dt, а затем объединить его с dt, но есть ли способ сделать это в datatable, что-то вроде
dt[, value_opposite := dt[some-function-of-id_opposite-and-value]]
Спасибо, если у вас есть предложения!