[R] how to force years as.numeric?

Marc Schwartz marc_schwartz at comcast.net
Thu Dec 11 02:23:53 CET 2008


on 12/10/2008 06:54 PM Viktor Nagy wrote:
> Hi,
> 
> My next problem is that I have a data frame with an years column. This
> column for some reason is recognised as factor instead of being
> numeric. The years go from 1970 to 2007. When I convert it to numeric
> with as.numeric then it goes from 1 to 38. Is there a way to convert
> it with saving its "levels"?
> 
> This would be actually important as I am affraid of converting my real
> values that are recognised as factors as well.
> 
> Thanks, Viktor

Viktor,

I would be concerned as to why a column that presumably only contains
numeric values is being coerced to a factor to begin with. That would
normally only occur when a column contains non-numeric characters.

read.table(), for example, uses type.convert() internally to do that and
the logic for the type coercion from a character vector is pretty
straight-forward.

Thus, you may have corrupted year values or at least corrupted
characters in that particular column. I would recommend reviewing that
data to get a sense of what is going on before proceeding.

In general, FAQ 1.10 "How do I convert factors to numeric?" covers the
process of converting factors containing numeric characters back to
their numeric values:

http://cran.r-project.org/doc/FAQ/R-FAQ.html#How-do-I-convert-factors-to-numeric_003f

HTH,

Marc Schwartz



More information about the R-help mailing list