 # Turning factor to numeric

Hi. I have a question about using the as.numeric. I'd like to turn a whole column of dates such as "03/24/2020" to numeric so that I can put these converted numeric variables as my x-axis in a ggplot function. My question is should I use as.numeric(df\$Date) or as.numeric(as.character(df\$Date)). My idea is not to use the first one because it's not a "straight" number. Any hints would be helpful. Thank you in advance!

If your `df\$Date` column is already of Date class, use `as.numeric(df\$Date)`, otherwise convert the column to Date class first, then use `as.numeric`. In your example, "3/24/2020" is a character string, so let's work with that in the example below.

``````x = "3/24/2020"
x
#>  "3/24/2020"
class(x)
#>  "character"
as.numeric(x)
#> Warning: NAs introduced by coercion
#>  NA

x = lubridate::mdy(x)
x
#>  "2020-03-24"
class(x)
#>  "Date"

x = as.numeric(x)
x
#>  18345

y = as.character(x)
y
#>  "2020-03-24"
class(y)
#>  "character"
``````

But do you need to convert your dates to numeric at all? ggplot handles date columns without the need to convert them to numeric values.

As suggested by the code above, Dates in R are actually just numeric values with a Date class attached. For example:

``````y=100
y
#>  100

class(y) = "Date"
y
#>  "1970-04-11"
``````

`as.numeric(as.character(df\$Date))` is necessary for converting factors back to their underlying categorical values. If `df\$Date` is of Date (or character) class, you'll see that if you run `as.numeric(as.character(df\$Date))` you'll get a vector of missing values. The reason for this is `as.character` converts the dates to character strings and `as.numeric` returns missing values when applied to character strings. The first code block shows this.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.