Cambiar la clase de factor a numérico de muchas columnas en un marco de datos

¿Cuál es la forma más rápida / mejor de cambiar un gran número de columnas a numérico de factor?

Utilicé el siguiente código pero parece haber reordenado mis datos.

> head(stats[,1:2])
  rk                 team
1  1 Washington Capitals*
2  2     San Jose Sharks*
3  3  Chicago Blackhawks*
4  4     Phoenix Coyotes*
5  5   New Jersey Devils*
6  6   Vancouver Canucks*

for(i in c(1,3:ncol(stats))) {
    stats[,i] <- as.numeric(stats[,i])
}

> head(stats[,1:2])
  rk                 team
1  2 Washington Capitals*
2 13     San Jose Sharks*
3 24  Chicago Blackhawks*
4 26     Phoenix Coyotes*
5 27   New Jersey Devils*
6 28   Vancouver Canucks*

¿Cuál es la mejor manera, menos nombrar cada columna como en:

df$colname <- as.numeric(ds$colname)