Atajo usando lm () en R para la fórmula

Es posible utilizar un atajo para la fórmula enlm()

m <- matrix(rnorm(100), ncol=5)
lm(m[,1] ~ m[,2:5]

aquí sería lo mismo que

lm(m[,1] ~ m[,2] + m[,3] + m[,4] + m[,5]

pero en el caso de que las variables no sean del mismo nivel (al menos esta es mi suposición por ahora), esto no funciona y recibo el error:

Error in model.frame.default(formula = hm[, 1] ~ hm[, 2:4], drop.unused.levels = TRUE) : 
  invalid type (list) for variable 'hm[, 2:4]'

Datos (hm):

     N cor.distance switches  time
1   50   0.04707842        2 0.003
2  100  -0.10769441        2 0.004
3  200  -0.01278359        2 0.004
4  300   0.04229509        5 0.008
5  500  -0.04490092        6 0.010
6 1000   0.01939561        4 0.007

¿Hay algún atajo que sea posible para evitar tener que escribir la fórmula larga?

Respuestas a la pregunta(2)

Su respuesta a la pregunta