Convertir le type de plusieurs colonnes d'un dataframe à la fois

J'ai l'impression de passer beaucoup de temps à la création d'un dataframe à partir d'un fichier, base de données ou quelque chose, puis la conversion de chaque colonne dans le type je le voulais dans (numérique, facteur, caractère, etc). Est-il un moyen de faire cela en une seule étape, éventuellement en donnant un vecteur de types ?

foo<-data.frame(x=c(1:10), 
                y=c("red", "red", "red", "blue", "blue", 
                    "blue", "yellow", "yellow", "yellow", 
                    "green"),
                z=Sys.Date()+c(1:10))

foo$x<-as.character(foo$x)
foo$y<-as.character(foo$y)
foo$z<-as.numeric(foo$z)

au lieu de les trois dernières commandes, j'aimerais faire quelque chose comme

foo<-convert.magic(foo, c(character, character, numeric))
  • Utiliser le colClasses argument read.table.
  • Des plages de valeurs peuvent également être attribués simplement à l'aide de: for(n in names(foo)[1:2]{foo[[n]]<-as.character(foo[[n]])} Pratique pour beaucoup de colonnes à convertir.
  • Appris si la conversion de plusieurs champs de facteur numérique, vous aurez besoin d'un autre appel à as.character ou levels. voir: stackoverflow.com/questions/3418128/...
InformationsquelleAutor PaulHurleyuk | 2011-10-06