Eu tenho um quadro de dados. Vamos chamá-lo 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-
Eu gostaria de concatenar as linhas desse quadro de dados (essa será outra pergunta). Mas olhe:
> class(bob$phenotype)
[1] "factor"
Bob
As colunas de são fatores. Então, por exemplo:
> 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)"
Não começo a entender isso, mas acho que esses são índices nos níveis dos fatores das colunas (da corte do rei caractacus) de bob
? Não é o que eu preciso.
Estranhamente, posso passar pelas colunas bob
à mão e fazer
bob$phenotype <- as.character(bob$phenotype)
o que funciona bem E, depois de digitar, posso obter um data.frame cujas colunas são caracteres e não fatores. Então, minha pergunta é: como posso fazer isso automaticamente? Como converter um data.frame com colunas de fator em um data.frame com colunas de caracteres sem ter que passar manualmente por cada coluna?
Pergunta de bônus: por que a abordagem manual funciona?
bob
.