An alternative way would be to construct your own function so that you can avoid this rbindlist
wrap (which I find is unnecessary) which gives you the freedom of constructing your function the way you want:
tmp <- function(x) {
mm <- colMeans(x)
ss=sapply(x, sd)
list(names=names(x), mean=mm, sd=ss)
}
data[, tmp(.SD), by=group]
group names mean sd
1: a x1 0.4988514 0.2770122
2: b x1 0.5246786 0.3014248
3: a x2 4.8031253 2.7978401
4: b x2 4.9104108 2.9135656