Cálculo post hoc rápido usando R

Eu tenho um grande conjunto de dados que gostaria de executar computação post hoc:

dat = as.data.frame(matrix(runif(10000*300), ncol = 10000, nrow = 300))

dat$group = rep(letters[1:3], 100)

Aqui está o meu código:

start <- Sys.time()

vars <- names(dat)[-ncol(dat)] 

aov.out <- lapply(vars, function(x) {
        lm(substitute(i ~ group, list(i = as.name(x))), data = dat)})

TukeyHSD.out <- lapply(aov.out, function(x) TukeyHSD(aov(x)))

Sys.time() - start

Diferença horária de 4.033335 mins

Demora cerca de 4 minutos. Existem maneiras mais eficientes e elegantes de executar post hoc usando R?

Muito obrigado