У меня есть фрейм данных. Давайте позвоним ему 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-
Я хотел бы объединить строки этого фрейма данных (это будет другой вопрос). Но посмотрите:
> class(bob$phenotype)
[1] "factor"
Bob
Столбцы являются факторами. Так, например:
> 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)"
Я не начинаю понимать это, но я предполагаю, что это индексы в уровнях факторов колонн (двора царя каратакуса) bob
? Не то, что мне нужно.
Странно, я могу пройти через столбцы bob
вручную, и сделать
bob$phenotype <- as.character(bob$phenotype)
который отлично работает И после некоторого набора я могу получить data.frame, столбцы которого являются символами, а не факторами. Итак, мой вопрос: как я могу сделать это автоматически? Как преобразовать data.frame с факторными столбцами в data.frame с символьными столбцами без необходимости вручную проходить через каждый столбец?
Бонусный вопрос: почему ручной подход работает?
bob
.