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"
Bob
Les 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 bob
main 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
.