data.table não computa grupos de NA por

Esta pergunta tem uma resposta parcialaqui mas a pergunta é muito específica e não posso aplicá-la ao meu próprio problema.

Gostaria de pular uma computação potencialmente pesada do grupo de NA ao usarby.

library(data.table)

DT = data.table(X = sample(10), 
                Y = sample(10), 
                g1 = sample(letters[1:2], 10, TRUE),
                g2 = sample(letters[1:2], 10, TRUE))

set(DT, 1L, 3L, NA)
set(DT, 1L, 4L, NA)
set(DT, 6L, 3L, NA)
set(DT, 6L, 4L, NA)

DT[, mean(X*Y), by = .(g1,g2)]

Aqui podemos ver que existem até 5 grupos, incluindo o(NA, NA) grupo. Considerando que (i) o grupo é inútil (ii) os grupos podem ser muito grandes e (iii) o cálculo real é mais complexo do quemean(X*Y) posso pular o grupo de maneira eficiente? Quero dizer, sem criar uma cópia da tabela restante. De fato, os seguintes trabalhos.

DT2 = data.table:::na.omit.data.table(DT, cols = c("g1", "g2"))
DT2[, mean(X*Y), by = .(g1,g2)]

questionAnswers(1)

yourAnswerToTheQuestion