I have a data frame. Let's call him
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-
I'd like to
concatenate the rows of this data frame (this will be another question). But
look:
>
class(bob$phenotype)
[1]
"factor"
Bob
's
columns are factors. So, for
example:
>
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)"
I don't begin to
understand this, but I guess these are indices into the levels of the factors of the
columns (of the court of king caractacus) of bob
? Not what I
need.
Strangely I can go through the columns of
bob
by hand, and
do
bob$phenotype <-
as.character(bob$phenotype)
which
works fine. And, after some typing, I can get a data.frame whose columns are characters
rather than factors. So my question is: how can I do this automatically? How do I
convert a data.frame with factor columns into a data.frame with character columns
without having to manually go through each column?
Bonus question: why does the manual approach
work?
No comments:
Post a Comment