Alterar a classe de fator para numérico de muitas colunas em um quadro de dados

Qual é a maneira mais rápida / melhor de alterar um grande número de colunas para fator numérico?

Usei o código a seguir, mas ele parece ter reordenado meus dados.

> 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*

Qual é a melhor maneira, exceto nomear todas as colunas como em:

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

questionAnswers(14)

yourAnswerToTheQuestion