I know we can dynamically add column names when creating columns by reference (using :=), as described e.g. here: Dynamic column names in data.table.
:=
Ho
As mentioned in the comments by lukeA, setNames can be used:
setNames
m <- c("blah", "foo") test_dtb[ , setNames(list(mean(b), median(b)), m), by = id]