J'ai une trame de données. Appelons-le bob:
> head(bob)
phenotype exclusion
GSM399350 3- 4- 8- 25- 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399351 3- 4- 8- 25- 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399352 3- 4- 8- 25- 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399353 3- 4- 8- 25+ 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399354 3- 4- 8- 25+ 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399355 3- 4- 8- 25+ 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
Je voudrais concaténer les lignes de ce bloc de données (ce sera une autre question). Mais regarde:
> class(bob$phenotype)
[1] "factor"
BobLes colonnes de sont des facteurs. Ainsi, par exemple:
> as.character(head(bob))
[1] "c(3, 3, 3, 6, 6, 6)" "c(3, 3, 3, 3, 3, 3)"
[3] "c(29, 29, 29, 30, 30, 30)"
Je ne commence pas à comprendre cela, mais je suppose que ce sont des indices dans les niveaux des facteurs des colonnes (de la cour du roi caractacus) de bob? Pas ce dont j'ai besoin.
Étrangement, je peux parcourir les colonnes de la bobmain et faire
bob$phenotype <- as.character(bob$phenotype)
qui fonctionne bien. Et, après quelques saisies, je peux obtenir un data.frame dont les colonnes sont des caractères plutôt que des facteurs. Ma question est donc: comment puis-je le faire automatiquement? Comment convertir un data.frame avec des colonnes factorielles en un data.frame avec des colonnes de caractères sans avoir à parcourir manuellement chaque colonne?
Question bonus: pourquoi l'approche manuelle fonctionne-t-elle?
bob.