问题
This question already has an answer here:
- How to convert a factor to integer\\numeric without loss of information? 7 answers
I am manipulating a data frame using the reshape package. When using the melt function, it factorizes my value column, which is a problem because a subset of those values are integers that I want to be able to perform operations on.
Does anyone know of a way to coerce a factor into an integer? Using as.character()
will convert it to the correct character, but then I cannot immediately perform an operation on it, and as.integer()
or as.numeric()
will convert it to the number that system is storing that factor as, which is not helpful.
Thank you!
Jeff
回答1:
You can combine the two functions; coerce to characters thence to numerics:
> fac <- factor(c("1","2","1","2"))
> as.numeric(as.character(fac))
[1] 1 2 1 2
回答2:
Quoting directly from the help page for factor
:
To transform a factor f to its original numeric values, as.numeric(levels(f))[f]
is recommended and slightly more efficient than as.numeric(as.character(f))
.
来源:https://stackoverflow.com/questions/4798343/convert-factor-to-integer