When  is.call(bysub), allow other functions:

Allow for setdiff()  and intersect()  for by=

ie, one might use   

    cols_exlcuded <- c("A", "D", "G")
    DT[, ..., by=setdiff(names(DT), cols_excluded)]