Dodaj wiele kolumn do R data.table w jednym wywołaniu funkcji?

Mam funkcję, która zwraca dwie wartości na liście. Obie wartości należy dodać do tabeli danych w dwóch nowych kolumnach. Ocena funkcji jest kosztowna, więc chciałbym uniknąć konieczności dwukrotnego obliczania funkcji. Oto przykład:

library(data.table)
example(data.table)
DT
   x y  v
1: a 1 42
2: a 3 42
3: a 6 42
4: b 1  4
5: b 3  5
6: b 6  6
7: c 1  7
8: c 3  8
9: c 6  9

Oto przykład mojej funkcji. Pamiętaj, że powiedziałem, że jest to kosztowne obliczenie, a poza tym nie ma sposobu na wywnioskowanie jednej wartości zwracanej z innych podanych wartości (jak w poniższym przykładzie):

myfun <- function (y, v) 
{
ret1 = y + v
ret2 = y - v
return(list(r1 = ret1, r2 = ret2))
}

Oto mój sposób, aby dodać dwie kolumny w jednej instrukcji. Trzeba jednak dwukrotnie zadzwonić do myfun:

DT[,new1:=myfun(y,v)$r1][,new2:=myfun(y,v)$r2]

   x y  v new1 new2
1: a 1 42   43  -41
2: a 3 42   45  -39
3: a 6 42   48  -36
4: b 1  4    5   -3
5: b 3  5    8   -2
6: b 6  6   12    0
7: c 1  7    8   -6
8: c 3  8   11   -5
9: c 6  9   15   -3

Jakieś sugestie, jak to zrobić? Mógłbym uratowaćr2&nbsp;w oddzielnym środowisku za każdym razem, gdy dzwonię do myfun, potrzebuję po prostu sposobu dodawania dwóch kolumn według referencji naraz.