Tengo un marco de datos. Vamos a llamarlo 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-
Me gustaría concatenar las filas de este marco de datos (esta será otra pregunta). Pero mira:
> class(bob$phenotype)
[1] "factor"
Bob
Las columnas son factores. Así por ejemplo:
> 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)"
No empiezo a entender esto, pero supongo que estos son índices de los niveles de los factores de las columnas (de la corte del rey caractaco) de bob
? No es lo que necesito.
Extrañamente puedo atravesar las columnas a bob
mano y hacer
bob$phenotype <- as.character(bob$phenotype)
que funciona bien Y, después de escribir un poco, puedo obtener un data.frame cuyas columnas son caracteres en lugar de factores. Entonces mi pregunta es: ¿cómo puedo hacer esto automáticamente? ¿Cómo convierto un data.frame con columnas de factor en un data.frame con columnas de caracteres sin tener que pasar manualmente por cada columna?
Pregunta adicional: ¿por qué funciona el enfoque manual?
bob
.